Tengo una VM con un disco virtual (visible como /dev/sdb
) con un tamaño de 10G
El administrador aumentó el tamaño del disco virtual a 60G.
Reinicié la máquina y ahora veo que el disco es más grande.
root@DMZMHLX3:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sdb 8:16 0 60G 0 disk
└─sdb1 8:17 0 10G 0 part /app
...
Ahora me gustaría agregar otra partición:
gdisk me dice que el disco tiene un tamaño de 60G, pero que el último sector utilizable es un sector correspondiente al tamaño de imagen del disco antiguo de 10G:
root@DMZMHLX3:~# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 125829120 sectors, 60.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 20969471 10.0 GiB 8300
El último sector utilizable debería ser algo así como 125829120 y no 20971486.
Entonces, aunque el tamaño de la imagen del disco ha aumentado y la VM ve el cambio, no sé cómo usar el espacio recién disponible.
fdisk me muestra:
root@DMZMHLX3:~# fdisk -l /dev/sdb
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
Disk /dev/sdb: 60 GiB, 64424509440 bytes, 125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: FCE659D1-3690-4C3C-93EC-79B51EE8556D
Device Start End Sectors Size Type
/dev/sdb1 2048 20969471 20967424 10G Linux filesystem
Reconoce una falta de coincidencia:
La discrepancia en el tamaño de GPT PMBR (20971519! = 125829119) se corregirá mediante w(rite). Pero al intentar escribir fdisk falla:
Command (m for help): w
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument
root@xxx:~#
¿Cómo puedo solucionar este problema?
El objetivo final es aumentar el tamaño de la partición existente, pero incluso si pudiera agregar nuevas particiones, ya estaría feliz.
Respuesta1
De acuerdo con laCambiar el tamaño de la partición fdisk falla con un argumento no válidopost, parece que usasseparado(por ejemplo sudo parted -l
) y déjalo "arreglar"El problema con la tabla de particiones que no cubre todo el disco o lo que sea.
Una vez que esa solución se aplica con esa herramienta para solucionar ese problema, simplemente avanza con el sudo fdisk /dev/sdb1
comando y aparentemente lo ejecuta sudo resize2fs /dev/sdb1
después para que se apliquen los cambios.
Importante: No olvide tener copias de seguridad completas del sistema antes de realizar cualquier cambio en la partición del disco.
Logré resolver esto de manera bastante simple. Instalé parted y cuando lo ejecuté me informó que la tabla de particiones no cubría el disco completo (obvio), por lo que me preguntó Reparar/Cancelar a lo que respondí con Reparar.
Aparentemente, eso funcionó, ya que pude modificar la partición al tamaño completo usando
sudo fdisk /dev/vda
, pero luego tuve que ejecutarsudo resize2fs /dev/vda3
para aplicar los cambios.
Además, hay consejos de otros sobre elCambiar el tamaño de la partición fdisk falla con un argumento no válidopublique en forma de respuestas y comentarios que también puedan resultarle útiles y beneficiosos.
Recursos de apoyo
Respuesta2
El cargo Extender una partición en un disco VMware en Linux tiene este procedimiento:
- Reparar la mesa GPT con parte:
sudo parted -l
Detenga cualquier servicio que acceda a estos discos y desmonte el disco, por ejemplo:
sudo systemctl stop jenkins.service sudo systemctl stop apache2.service sudo umount /dev/sdb1
Este paso se puede evitar arrancando desde el disco GParted, como se describe a continuación.
Extienda la partición desde fdisk:
sudo fdisk /dev/sdb
Como ampliar el disco desde la VM requiere detener cualquier servicio que pueda estar usando el disco, esto se puede evitar iniciando la VM con Gpartido.
El artículo Utilice GParted para aumentar el tamaño del disco de una partición nativa de Linux describe todo el procedimiento en detalle.
Respuesta3
La razón es que GPT tiene una copia de seguridad de la tabla de particiones colocada al final del disco, por lo que incluso cuando el disco tiene un "nuevo extremo", la copia de seguridad no va automáticamente a él y limita los bloques utilizables a los antiguos. "área".
Simplemente puede "eliminar" (borrar) el GPT ( x
y luego z
en gdisk
), luego crear uno nuevo con las mismas entradas de partición (ingresando el mismo inicio y, opcionalmente, el mismo final).
Si está realizando un arranque UEFI, debería estar bien eliminar también el MBR protector, ya que no debería haber ningún código de arranque que deba conservarse.
EDITAR: En realidad, parece que puedes simplemente x
y luego e
en gdisk
.