aumento do tamanho do disco em uma máquina virtual, mas o gdisk não quer usar o novo espaço

aumento do tamanho do disco em uma máquina virtual, mas o gdisk não quer usar o novo espaço

Eu 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 gostaria de adicionar outra partição:

gdisk me diz que o disco tem tamanho de 60G, mas que o último setor utilizável é um setor correspondente ao antigo tamanho da 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  

o ú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 pudesse adicionar novas partições, já ficaria feliz

Responder1

De acordo comO redimensionamento da partição fdisk falha com argumento inválidopostar, parece que você usase separaram(por exemplo sudo parted -l) e deixe "consertar"o problema com a tabela de partição não cobrindo todo o disco ou algo assim.

Depois que essa correção se aplica a essa ferramenta para solucionar esse problema, basta seguir em frente com o sudo fdisk /dev/sdb1comando e, aparentemente, executar sudo resize2fs /dev/sdb1depois 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.

Consegui resolver isso de forma bastante simples. Instalei o parted e quando executei ele me informou que a tabela de partições não cobria o disco inteiro (duh), então me pediu Corrigir/Cancelar ao qual respondi com Correção.

Aparentemente, isso funcionou, pois consegui modificar a partição para o tamanho total usando sudo fdisk /dev/vda, mas depois precisei executar sudo resize2fs /dev/vda3para que as alterações fossem aplicadas.

Fonte

Além disso, há conselhos de outras pessoas sobre oO redimensionamento da partição fdisk falha com argumento inválidoposte na forma de respostas e comentários que também podem ser úteis e benéficos.


Recursos de apoio

Responder2

A postagem Estendendo uma partição em um disco VMware no Linux tem esse procedimento:

  • Repare a tabela GPT com parted:sudo parted -l
  • Pare todos os serviços que acessam esses discos e desmonte o disco, por exemplo:

    sudo systemctl stop jenkins.service
    sudo systemctl stop apache2.service
    sudo umount /dev/sdb1
    

    Esta etapa pode ser evitada inicializando a partir do disco GParted, conforme descrito abaixo.

  • Estenda a partição do fdisk:sudo fdisk /dev/sdb


Como ampliar 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 Use GParted para aumentar o tamanho do disco de uma partição nativa do Linux descreve todo o procedimento em detalhes.

Responder3

A razão é que o GPT possui uma cópia de backup da tabela de partição colocada no final do disco, portanto, mesmo quando o disco tem um "novo final", o backup não vai automaticamente para ele e limita os blocos utilizáveis ​​​​ao antigo "área".

Você pode simplesmente "zapar" (limpar) o GPT ( xe depois zentrar gdisk) e, em seguida, criar um novo com as mesmas entradas de partição (inserindo o mesmo início e, opcionalmente, o mesmo final).

Se você estiver inicializando via UEFI, não há problema em eliminar 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 xe depois eentrar gdisk.

informação relacionada