Redimensionando o particionamento do fdisk com argumento inválido

4

Recentemente, redimensionei um VPS de um SSD de 50 GB para um SSD de 300 GB através do painel de controle do meu hoster. Eu agora estou tentando redimensionar minha partição principal com fdisk para poder usar todo o novo espaço. No entanto, o fdisk me dá um aviso ao iniciar:

GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).
GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).

Parece óbvio que é um sexto do tamanho anterior, já que passei de 50 GB para 300 GB. Então, eu decido seguir a dica e escrever a tabela ...

Command (m for help): w
GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument

.. o que não funciona. Não consigo encontrar o que causa esse erro em qualquer lugar, apesar de muitas consultas de pesquisa. Eu não uso o LVM e minha tabela de partições se parece com:

Disk /dev/vda: 300 GiB, 322122547200 bytes, 629145600 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: 30D92031-0C13-42FF-AC16-D34F36DD3907

Device        Start       End  Sectors Size Type
/dev/vda1      2048     32767    30720  15M BIOS boot
/dev/vda2     32768  16809983 16777216   8G Linux swap
/dev/vda3  16809984 104857566 88047583  42G Linux filesystem

Observe como o disco mostra como 300GiB, por isso reconhece a mudança de tamanho.

    
por Bart Pelle 24.08.2015 / 12:01

3 respostas

10

Eu consegui resolver isso de forma bastante simples. Eu instalei parted e quando corri me informou que a tabela de partições não cobria o disco inteiro (duh), então ele me pediu Fix/Cancel ao qual respondi com Fix . Aparentemente, o truque foi que consegui modificar a partição para o tamanho máximo usando sudo fdisk /dev/vda , mas depois precisei executar sudo resize2fs /dev/vda3 para que as alterações fossem aplicadas.

    
por 24.08.2015 / 14:04
1

Pode ser necessário excluir a partição vda3 sem gravar as alterações na tabela de partição pressionando 'w' e, em seguida, recriar a partição com o novo tamanho de setor para que você não perca os dados. Você pode precisar desmontar a partição e fazer um e2fsck antes de executar o seguinte:

Por exemplo: fdisk / dev / vda

Enter p
Delete the partition 'd' (Partition number is 3)'
Create new partition 'n'
Select the Start sector:
Select the end sector:(New Size)
Write the changes to the disk:
Update the partition table: (partprobe /dev/vda)
#resize2fs /dev/vda3
#mount the partition
    
por 24.08.2015 / 12:40
1

O problema é que o MBR de proteção (PMBR) é pequeno. Você pode alterar o MBR de proteção usando:

  1. x para funcionalidade extra
  2. M para entrar no MBR protetor / híbrido
  3. (p permite mostrar o MBR protetor)
  4. r para retornar ao menu principal (ainda no modo MBR de proteção!)
  5. d para excluir o parititon MBR de proteção de tamanho errado
  6. n, 4x [enter] para criar uma nova partição e 4xenter para aceitar as configurações padrão (primária, número de posição 1 e tamanho total)
  7. t e "ee" para alterar o tipo para GPT
  8. x para funcionalidade extra
  9. M para sair do modo MBR protetor / híbrido
  10. r para retornar ao menu principal (agora no modo GPT novamente)
  11. w para escrever

Com isso eu pude corrigir a falta de correspondência de tamanho do GPT PMBR.

Para corrigir o problema do disklabel, tive que descarregar a tabela de partição usando "O" e alterar last-lba no script exportado para disksize, conforme relatado no fdisk -34 (para o GPT secundário). Eu então reimportei o script usando "I".

    
por 03.03.2018 / 11:19