1. Introducción
Quedarse sin espacio en /
es uno de esos sustos que tarde o temprano vivimos en servidores o portátiles Linux. Fedora, con su esquema por defecto “LVM sobre LUKS”, tiene varias capas que entender:
- Disco y particiones físicas (
/dev/sda1
,/dev/sda2
…) - LVM
- PV (Physical Volume)
- VG (Volume Group)
- LV (Logical Volume)
- Sistema de archivos — normalmente XFS en
/
Esta arquitectura es muy flexible: podemos crecer sin desmontar ni reiniciar. Pero antes de tocar LVM, necesitamos respirar y obtener algo de espacio libre: LVM guarda una copia de sus metadatos antes de cada cambio, y si no hay ni 10 KB disponibles obtenemos errores como «Couldn’t create temporary archive name».
2. Diagnóstico rápido
df -hT /
lsblk -f
pvs
vgs
Con estas órdenes sabemos:
- Tipo y versión del FS (
xfs
en nuestro caso) - Tamaño y % de uso de
/
- Cuánto espacio libre tiene el VG (
PFree
,VFree
)
Ejemplo de salida relevante:
/dev/mapper/fedora_fedora-root xfs 15G 100% /
PV /dev/sda2 VG fedora_fedora PSize 99G PFree 84G
Conclusión: el Grupo de Volúmenes tiene 84 GB libres; el problema es que el LV raíz ocupa solo 15 GB y ya está lleno.
3. Liberar espacio de forma segura
3.1 Vaciar caché de DNF
dnf
guarda paquetes descargados en /var/cache/dnf/
; después de una actualización grande, esto puede sumar cientos de MB.
sudo dnf clean packages # borra paquetes descargados
# sudo dnf clean all # más agresivo: metadatos + paquetes
3.2 Quitar journals antiguos
Systemd‑journal escribe en /var/log/journal/
. Podemos limitar su tamaño sin perder la bitácora actual:
# Mantener máximo 500 MB en total
sudo journalctl --vacuum-size=500M
# o mantener solo las últimas 2 semanas
sudo journalctl --vacuum-time=2weeks
Ambos comandos eliminan únicamente archivos cerrados; el journal activo permanece intacto, de modo que los servicios siguen registrando eventos sin pausa.
Comprueba cuánto liberaste:
sudo journalctl --disk-usage
3.3 Truncar logs gigantes
Ciertos demonios (p.ej. Apache, aplicaciones propias) pueden generar bitácoras que crecen sin rotación. Encuéntralas y recórtalas:
sudo du -sh /var/log/* | sort -h | tail
sudo truncate -s 0 /var/log/TU_LOG.log
3.4 Verifica que ya hay espacio
df -h /
Con apenas 5‑10 MB libres hemos despejado el obstáculo que impedía a LVM crear su copia de seguridad.
4. (Opcional) Configura una política de journal permanente
Para que no vuelva a desbordarse /var/log/journal
:
sudo mkdir -p /etc/systemd/journald.conf.d
sudo tee /etc/systemd/journald.conf.d/99-storage.conf <<'EOF'
[Journal]
SystemMaxUse=1G # tope global
SystemMaxFileSize=200M # tope por archivo
EOF
sudo systemctl restart systemd-journald
5. Próximos pasos
Con espacio temporal recuperado, estamos listos para agrandar el volumen lógico raíz y su sistema de archivos XFS usando el área libre del VG.
Ahí veremos:
lvextend -r -l +100%FREE …
- Alternativas si deseas reservar espacio para
/home
o snapshots - Cómo verificar el cambio y buenas prácticas para evitar futuros sustos
En la primera entrega liberamos algunos megabytes cruciales sin interrumpir la llegada de nuevas bitácoras.
Ahora sí: aprovecharemos los ≈ 84 GB libres del grupo de volúmenes para que /
deje de vivir al límite.
6. Repaso del punto de partida
Comando | Salida clave |
---|---|
pvs | PFree ≈ 84 G |
vgs | VFree ≈ 84 G |
lvs | fedora_fedora-root 15 G |
df -h / | 100 % usado |
Tenemos margen de sobra dentro del mismo disco; no hace falta tocar particiones ni agregar discos.
7. Cuánto espacio añadir
Antes de ejecutar nada, decide:
Escenario | Comando ejemplo | Resultado |
---|---|---|
Quiero TODO el espacio disponible | sudo lvextend -r -l +100%FREE /dev/mapper/fedora_fedora--root | El LV pasa de 15 G → ≈ 99 G |
Quiero añadir solo 30 GB | sudo lvextend -r -L +30G /dev/mapper/fedora_fedora--root | El LV pasa de 15 G → 45 G; deja 54 G libres en el VG |
-r
ejecuta automáticamentexfs_growfs
, así que no tendrás que hacer un segundo comando.
8. Ejecución paso a paso
8.1 Comprobación de seguridad (opcional pero aconsejable)
sudo vgcfgbackup
Copia los metadatos LVM en /etc/lvm/backup/…
.
Ahora bien, como ya liberamos espacio, LVM puede guardar su propia copia cuando hagamos el lvextend
.
8.2 Extensión del LV + sistema de archivos
Ejemplo: usar todo lo libre.
sudo lvextend -r -l +100%FREE /dev/mapper/fedora_fedora--root
Salida típica:
Size of logical volume fedora_fedora/root changed from 15.00 GiB (3840 extents) to <99.00 GiB (25343 extents).
Logical volume fedora_fedora/root successfully resized.
meta-data=/dev/mapper/fedora_fedora--root isize=512 agcount=4, agsize=983040 blks
data = ... (antes)
xfs_growfs: data size changed from 6291456 to 25952256 blocks
¿XFS en línea? Sí.
xfs_growfs
no requiere desmontar ni reiniciar.
8.3 Verificación
df -h /
lvs -a -o lv_name,lv_size,lv_path
Debes ver la nueva capacidad y un % de uso saludable.
9. Qué hacer si el VG estuviera lleno (referencia rápida)
No lo necesitas ahora, pero guárdalo para el futuro.
- Ampliar la partición
sda2
(usargrowpart
oparted resizepart
) pvresize /dev/sda2
- Retomar desde 7.
O bien, añadir otro disco:
sudo pvcreate /dev/sdb
sudo vgextend fedora_fedora /dev/sdb
10. Buenas prácticas post‑expansión
10.1 Impedir que el journal vuelva a desbordarse
Ya configuramos SystemMaxUse=1G
, pero conviene revisar:
grep -A2 '^\[Journal\]' /etc/systemd/journald.conf /etc/systemd/journald.conf.d/* || true
10.2 Limpieza automática de DNF
sudo systemctl enable --now dnf-makecache.timer
sudo systemctl enable --now dnf-automatic-install.timer
Y añade al cron del super‑usuario algo como:
@monthly dnf autoremove -y && dnf clean packages
10.3 Separar /home
(opcional)
- Reserva espacio libre:
sudo lvcreate -L 40G -n home fedora_fedora
- Formatea:
sudo mkfs.xfs /dev/fedora_fedora/home
- Copia datos y ajusta
/etc/fstab
.
Con /home
aislado, los archivos personales ya no pondrán en riesgo a la raíz.
10.4 Snapshots LVM
Antes de actualizaciones mayores:
sudo lvcreate -s -n pre_upgrade_root -L 5G /dev/fedora_fedora/root
Si algo falla, arrancas desde un LiveUSB y lvconvert --merge
.
11. Checklist final
✓ | Tarea |
---|---|
Respaldos vigentes | |
Liberar espacio (dnf clean , journalctl --vacuum-* ) | |
lvextend -r … con el tamaño deseado | |
Verificar con df -h / | |
Configurar límites permanentes en journal | |
Programar limpieza mensual de cachés | |
Documentar el procedimiento para el siguiente administrador |
12. Conclusión
Pasar de un sistema saturado a uno holgado requería solo unos minutos:
- Quitar & liberar MB críticos.
- Ampliar el LV raíz en caliente gracias a la flexibilidad de LVM + XFS.
- Prevenir con límites de journal y tareas de limpieza.
Esta combinación de buenas prácticas debería evitar que tu Fedora vuelva a quedarse sin espacio… al menos hasta la próxima migración de versión o acumulación de contenedores olvidados 😉