Tras un upgrade de disco en su VPS Linux Infrawire, el disco virtual es más grande, pero la partición y el sistema de archivos conservan su tamaño anterior. Hay que ampliar ambos a mano, en caliente y sin desmontar la raíz.
Esta guía cubre las particiones clásicas (ext4 y XFS) y las instalaciones con LVM en Ubuntu 24.04, Debian 12, AlmaLinux 9 y Rocky 9.
📋 Requisitos previos
- Un VPS cuyo disco ya se haya ampliado (el nuevo tamaño aparece en
lsblk) - Acceso SSH como root (la IP y la contraseña root están en su área de cliente)
- Una copia de seguridad reciente de sus datos importantes
1. Hacer una copia antes de tocar las particiones
Redimensionar un sistema de archivos ext4 o XFS montado es habitual, pero un error en la tabla de particiones puede destruir datos. Guarde primero lo esencial:
Bash# Archivar los datos irremplazables tar -czf /root/backup-etc.tar.gz /etc rsync -avz /var/www/ USER@BACKUP_HOST:/backups/www/ # Guardar la tabla de particiones (útil para restaurarla) sfdisk -d /dev/vda > /root/vda-partition-table.txt
2. Identificar el disco, la partición y el sistema de archivos
Bashlsblk -f df -hT /
Salida típica: disco vda de 80G, partición vda1 de 40G montada en /, sistema de archivos ext4 o xfs. Si la raíz está en /dev/mapper/..., usa LVM: vea la sección 5. El disco también puede llamarse sda o nvme0n1 (las particiones acaban entonces en p1).
3. Ampliar la partición con growpart
Instale la herramienta. En Ubuntu y Debian el paquete es cloud-guest-utils; en AlmaLinux y Rocky es cloud-utils-growpart:
Bash# Ubuntu / Debian apt update && apt install -y cloud-guest-utils # AlmaLinux / Rocky dnf install -y cloud-utils-growpart
Amplíe después la partición número 1 del disco /dev/vda (fíjese en el espacio entre el disco y el número):
Bashgrowpart /dev/vda 1
Si el mensaje dice NOCHANGE, la partición ya ocupa todo el espacio. Algunas imágenes tienen además una partición pequeña tras la raíz (un swap, por ejemplo): en ese caso growpart no puede ampliar la raíz y hay que eliminar o mover antes esa partición.
Compruebe que el kernel ve el nuevo tamaño:
Bashlsblk /dev/vda # Si aún aparece el tamaño anterior: partprobe /dev/vda
4. Ampliar el sistema de archivos
Use el comando que corresponda a su tipo de sistema de archivos (lo muestra lsblk -f).
Para ext4:
Bashresize2fs /dev/vda1
Para XFS (por defecto en AlmaLinux y Rocky). El argumento es el punto de montaje, no el dispositivo, y XFS solo puede crecer, nunca reducirse:
Bashxfs_growfs /
5. Caso LVM: pvresize y lvextend
Cuando el volumen lógico raíz está sobre LVM, hay una capa más: partición, luego volumen físico, luego volumen lógico y por último el sistema de archivos.
Bashlsblk pvs && vgs && lvs # 1. Ampliar la partición que contiene el volumen físico (aquí vda3) growpart /dev/vda 3 # 2. Avisar a LVM de que el volumen físico es mayor pvresize /dev/vda3 # 3. Extender el volumen lógico y su sistema de archivos de una vez (-r) lvextend -r -l +100%FREE /dev/mapper/VG_NAME-LV_NAME
La opción -r llama por usted a la herramienta adecuada (resize2fs o xfs_growfs). Adapte VG_NAME-LV_NAME a la salida de lvs, por ejemplo /dev/ubuntu-vg/ubuntu-lv. Para usar solo parte del espacio libre, sustituya -l +100%FREE por -L +10G.
6. Verificar el resultado
Bashdf -h / lsblk
La columna Size de df -h debe coincidir ahora con la nueva capacidad, y lsblk debe mostrar la partición ocupando todo el disco. No hace falta reiniciar: sus aplicaciones siguen funcionando durante toda la operación.
🛠️ Solución de problemas
growpart: command not found: el paquete no está instalado. Instale cloud-guest-utils (apt) o cloud-utils-growpart (dnf).
NOCHANGE: partition 1 could not be grown: o bien el disco no se amplió realmente (compare lsblk con lo que contrató), o bien hay otra partición justo después de la que quiere ampliar. Compruébelo con fdisk -l /dev/vda.
resize2fs: Bad magic number in super-block: el sistema de archivos probablemente es XFS y no ext4. Ejecute lsblk -f y use xfs_growfs /.
xfs_growfs: / is not a mounted XFS filesystem: pasó un nombre de dispositivo, o el sistema de archivos es ext4. Indique el punto de montaje y compruebe antes el tipo.
lvextend indica que no quedan extents libres: se saltó growpart o pvresize. Ejecute pvs y revise la columna PFree.
🎉 Su espacio de disco adicional ya es utilizable: sin reinicio, sin cortes, y df -h lo demuestra.