Ampliación de disco (basado en qcow2) en sistema virtualizado KVM (proxmox)
Contexto
Proceso para ampliar un disco virtual qcow2 en Proxmox cuando el sistema operativo invitado usa LVM y la tabla de particiones GPT no reconoce el nuevo tamaño tras la ampliación.
Escenario inicial
- Disco qcow2 ampliado desde ~36GB a 46GB en Proxmox
- Sistema operativo no reconoce el espacio adicional
- Estructura: sda1 (BIOS boot), sda2 (boot), sda3 (LVM PV)
Síntomas
fdisk -l /dev/sda
# Output:
# GPT PMBR size mismatch (75497471 != 96468991) will be corrected by write.
# The backup GPT table is not on the end of the device.
Prerequisitos
- Backup: Crear snapshot en Proxmox antes de proceder
- Acceso: Conexión SSH o consola al sistema invitado
- Herramientas: gdisk, parted, lvm2 (generalmente preinstalados)
Proceso paso a paso
1. Verificar estado inicial
# Ver estructura actual del disco
fdisk -l /dev/sda
# Verificar PV/VG/LV actuales
pvscan
vgdisplay
lvscan
2. Corregir estructura GPT
# Abrir gdisk
gdisk /dev/sda
# Verificar problemas
v
# Entrar en modo experto y corregir
x # Expert mode
e # Relocate backup structures to end of disk
w # Write changes and exit
y # Confirm
3. Redimensionar partición
# Expandir la partición al 100% del disco disponible
parted /dev/sda resizepart 3 100%
4. Expandir Physical Volume
# Redimensionar el PV para usar todo el espacio de la partición
pvresize /dev/sda3
# Verificar el resultado
pvdisplay /dev/sda3
5. Expandir Logical Volume y filesystem
# Expandir el LV usando todo el espacio libre disponible
lvresize --extents +100%FREE --resizefs /dev/ubuntu-vg/ubuntu-lv
# El flag --resizefs ejecuta automáticamente resize2fs
6. Verificación final
# Verificar espacio disponible
df -h /
# Vista general de la estructura
lsblk
# Verificar estado LVM
vgdisplay
lvdisplay
Mensajes esperados
Durante gdisk verify (v)
Problem: The secondary header's self-pointer indicates that it doesn't reside at the end of the disk
Warning: There is a gap between the secondary partition table and secondary metadata
Caution: Partition 3 doesn't end on a 2048-sector boundary
Nota: Estos son problemas esperados tras ampliar el disco y se corrigen con el comando e
en expert mode.
Durante lvresize
Physical volume "/dev/sda3" changed
Size of logical volume changed from <34.25 GiB to <44.25 GiB
resize2fs: on-line resizing required
The filesystem is now XXXXXX (4k) blocks long.
Consideraciones importantes
Seguridad
- Sin downtime: Todo el proceso se ejecuta en caliente
- Solo crecimiento: No se mueven ni reducen datos existentes
- LVM como protección: Añade capa adicional de seguridad
Orden crítico
- Corregir GPT antes que redimensionar particiones
- Redimensionar partición antes que PV
- Expandir PV antes que LV
Troubleshooting común
- "Disk in use" warning: Normal, se puede ignorar en operaciones de crecimiento
- GPT mismatch: Esperado tras resize de qcow2, se corrige con gdisk
- Alignment warnings: Generalmente no críticos en discos virtuales
Comandos de verificación post-proceso
# Verificar que no quedan problemas GPT
gdisk /dev/sda
v
q
# Estado final del disco
fdisk -l /dev/sda
# Estado LVM completo
pvs && vgs && lvs
# Espacio en filesystem
df -h /
Resultado esperado
- Disco reconocido con nuevo tamaño completo
- Sin mensajes de error en GPT
- Espacio adicional disponible en el filesystem raíz
- Sistema operativo funcionando normalmente
- Proceso validado en Ubuntu 22.04 sobre Proxmox VE con discos qcow2
- Generado el 26/09/2025 por Abdelkarim Mateos Sánchez - Administrador de Sistemas
Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris
Si necesitas soporte profesional puedes contratar con Castris soporte profesional.