Cuando se aumenta el tamaño de un disco virtual o una SSD, Linux no siempre incorpora automáticamente el espacio nuevo al sistema de archivos. Si el almacenamiento usa LVM sobre una partición, hay que ampliar cada capa: la partición, el volumen físico, el volumen lógico y, por último, el sistema de archivos.
Los comandos de este ejemplo suponen que el dispositivo es /dev/sda, que la partición LVM es la número 2 y que el volumen lógico es /dev/vg00/lv01. Identifica los nombres reales de tu equipo antes de ejecutar cambios.
1. Revisar la estructura actual
Haz una copia de seguridad y confirma primero que el disco ya muestra la capacidad ampliada. Después inspecciona las particiones, los sistemas de archivos y la estructura LVM:
lsblk -f
sudo pvs
sudo vgs
sudo lvs
df -hT
Comprueba cuál es el volumen físico (PV) y de qué partición o disco depende. El ejemplo de esta guía requiere que el PV esté en una partición, como /dev/sda2. Si el PV utiliza el disco completo, omite el paso de ampliar la partición y usa el dispositivo de disco en los pasos de LVM.
Importante: no deduzcas los dispositivos por su nombre ni copies
/dev/sda2literalmente. Verifica el disco, número de partición, grupo de volúmenes, volumen lógico y punto de montaje con las salidas anteriores.
2. Ampliar la partición
En Ubuntu y Debian, growpart forma parte del paquete cloud-guest-utils; en distribuciones Red Hat, se distribuye en el paquete cloud-utils-growpart [1]. Instala el paquete apropiado para tu distribución si el comando no está disponible.
Primero pide a growpart una simulación para revisar el cambio previsto. Luego amplía la partición para que ocupe el espacio disponible hasta la siguiente partición o el final del disco [1]:
sudo growpart --dry-run /dev/sda 2
sudo growpart /dev/sda 2
Si el disco tiene otras particiones detrás de la partición LVM, growpart solo puede ampliarla hasta la siguiente partición. Revisa el resultado con lsblk -f antes de continuar.
3. Ampliar el volumen físico de LVM
Una vez que el sistema operativo ve el nuevo tamaño de /dev/sda2, redimensiona el PV para que LVM incorpore el espacio libre de la partición [2]:
sudo pvresize /dev/sda2
sudo pvs
sudo vgs
La salida de pvs y vgs permite comprobar que LVM reconoce el espacio adicional y cuántos extents libres hay en el grupo.
4. Ampliar el volumen lógico y el sistema de archivos
Decide cuánto espacio asignar. Por ejemplo, este comando añade 20 GiB al volumen lógico y solicita redimensionar también el sistema de archivos [3]:
sudo lvextend --resizefs --size +20G /dev/vg00/lv01
Sustituye +20G por el tamaño que necesites y confirma que el grupo de volúmenes dispone de espacio libre suficiente. Para asignar todos los extents libres se puede usar --extents +100%FREE, pero eso deja sin espacio libre a LVM para futuras ampliaciones de otros volúmenes.
La opción --resizefs (-r) coordina la ampliación del volumen lógico con la del sistema de archivos mediante fsadm. La compatibilidad depende del sistema de archivos y de las herramientas instaladas [3]. Si tienes que ampliar el sistema de archivos por separado:
- Para ext2, ext3 o ext4, utiliza
resize2fssobre el dispositivo del volumen lógico. - Para XFS, utiliza
xfs_growfsindicando el punto de montaje; XFS debe estar montado para crecer [4].
No ejecutes los comandos manuales de sistema de archivos si lvextend --resizefs ya completó ambos pasos.
5. Verificar el resultado
Comprueba el tamaño del volumen lógico, del sistema de archivos y del punto de montaje:
sudo lvs
df -hT
El espacio nuevo debería aparecer en el sistema de archivos montado. Si no coincide con lo esperado, revisa los mensajes del comando y la salida de lsblk, pvs, vgs y lvs antes de repetir operaciones.
En resumen
La ampliación atraviesa varias capas: primero la partición (si el PV vive en una), después el PV, luego el LV y finalmente el sistema de archivos. Comprueba cada capa antes de pasar a la siguiente y conserva una copia de seguridad antes de modificar el almacenamiento.
📚 Fuentes consultadas
- growpart — cloud-utils (Canonical) y cloud-utils README
- pvresize(8) — Linux manual page
- lvextend(8) — Linux manual page y fsadm(8) — Linux manual page
- resize2fs(8) — Linux manual page y xfs_growfs(8) — Linux manual page