Tenho uma VM com um disco virtual (visível como /dev/sdb
) com tamanho de 10G
O administrador aumentou o tamanho do disco virtual para 60G.
Reiniciei a máquina e vejo agora que o disco está maior.
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
...
Agora eu gostaria de adicionar outra partição:
gdisk me diz que o disco tem um tamanho de 60G, mas que o último setor utilizável é um setor correspondente ao antigo tamanho de imagem de disco 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
último setor utilizável deve ser algo como 125829120 e não 20971486.
Portanto, embora o tamanho da imagem do disco tenha aumentado e a VM veja a mudança, não sei como usar o espaço recém-disponível.
fdisk me mostra:
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
Ele reconhece uma incompatibilidade:
A incompatibilidade de tamanho GPT PMBR (20971519 != 125829119) será corrigida por w(rite). Mas ao tentar escrever o fdisk falha:
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:~#
Como posso corrigir esse problema?
O objetivo final é aumentar o tamanho da partição existente, mas mesmo que eu possa adicionar novas partições já ficaria feliz
De acordo com a postagem de redimensionamento da partição fdisk com argumento inválido , parece que você usa parted (por exemplo
sudo parted -l
) e permite " corrigir " o problema com a tabela de partições que não cobre todo o disco ou qualquer outra coisa.Uma vez que a correção se aplica a essa ferramenta para resolver esse problema, você simplesmente avança com o
sudo fdisk /dev/sdb1
comando e, aparentemente, executasudo resize2fs /dev/sdb1
depois para que as alterações sejam aplicadas.Importante: não se esqueça de fazer backups completos do sistema antes de fazer qualquer alteração na partição do disco.
Além disso, há conselhos de outras pessoas na postagem de redimensionamento da partição fdisk com argumento inválido na forma de respostas e comentários que você pode achar úteis e benéficos também.
Recursos de suporte
O redimensionamento da partição fdisk falha com argumento inválido
partiu
O post Estendendo uma partição em um disco VMware no Linux tem este procedimento:
sudo parted -l
Pare todos os serviços que acessam esses discos e desmonte o disco, por exemplo:
Essa etapa pode ser evitada inicializando a partir do disco GParted, conforme descrito abaixo.
Estenda a partição do fdisk:
sudo fdisk /dev/sdb
Como aumentar o disco de dentro da VM requer a interrupção de qualquer serviço que possa estar usando o disco, isso pode ser evitado inicializando a VM com GParted .
O artigo Usar GParted para aumentar o tamanho do disco de uma partição nativa do Linux descreve todo o procedimento em detalhes.
A razão é que o GPT tem uma cópia de backup da tabela de partição colocada no final do disco, portanto, mesmo quando o disco tem um "novo fim", o backup não vai automaticamente para ele e limita os blocos utilizáveis ao antigo "área".
Você pode simplesmente "zap" (limpar) o GPT (
x
e, em seguida ,z
ingdisk
) e, em seguida, criar um novo com a(s) mesma(s) entrada(s) de partição (inserindo o mesmo início e, opcionalmente, o mesmo fim).Se você estiver inicializando com UEFI, não há problema em zapear o MBR de proteção também, pois não deve haver nenhum código de inicialização que precise ser mantido.
EDIT: Na verdade, parece que você pode simplesmente
x
e depoise
emgdisk
.