Como redimensionar uma partição não raiz em seu espaço de dispositivo pai

0

Estou executando o Ubuntu Server 16.04 LTS em uma instância do Amazon EC2. Eu expandi um dos volumes anexados e tentei fazê-lo no meu terminal. Como eu já tinha uma partição com o tamanho antigo, achei que seria fácil dizer: "Vá em frente e tire todo o espaço do dispositivo do seu pai".

Como você pode ver na imagem, meu dispositivo é xvdb com 18G e a partição com o tamanho antigo é xvdb1 com 10G

Deacordocomoalemão wiki do ubuntu eu preciso usar resize2fs para sistemas de arquivos ext2, ext3 and ext4 .

No entanto, se eu tentar usar resize2fs -p /dev/xvdb1 18G , o erro será retornado:

The containing partition (or device) is only 2621184 (4k) blocks.
You requested a new size of 4718592 blocks.

Entendo que minha partição foi feita com mkfs e o tamanho determinado foi definido lá, o que significa que não pode ser excedido no momento. O tamanho do dispositivo recém-adicionado não está formatado e, portanto, não está pronto para uso. Isso significa que eu devo excluir a partição, gerar uma nova com o tamanho maior e restaurar meus dados de um backup, certo? Mesmo assim, isso parece um pouco errado ...

Gostaria de ter uma boa maneira de expandir as partições rapidamente sem excluí-las e restaurá-las com o novo tamanho (mesmo que isso signifique possíveis erros de hardware). Espero que alguém conheça uma maneira decente de fazer isso. Por favor, tenha em mente que eu estou limitado ao terminal e tenho outros processos em execução, o que significa que não posso simplesmente reinicializar toda vez que eu mudar alguma coisa.

PS .: Este Q & amp; ; A também não estava ajudando.

Atenciosamente, Megajin

    
por Megajin 10.04.2017 / 08:08

1 resposta

0

Ok, encontrei uma solução para mim mesmo. Caso alguém tenha o mesmo problema que eu, aqui está a solução:

Solução original do Amazon Docs (partições raiz incluídas): link

  1. Identifique o dispositivo que contém a partição que você deseja expandir. Use o comando lsblk para listar todos os dispositivos e partições anexados à instância.
  2. Desmonte a partição, se estiver montada. Execute o comando umount com o valor de MOUNTPOINT do comando lsblk.
  3. Execute o comando parted no dispositivo (e não a partição no dispositivo). Lembre-se de adicionar o prefixo / dev / ao nome que lsblk produz.
  4. Altere o parted units da medida para setores com unit s .
  5. Se você receber mensagens de erro estranhas, digite ignore .
  6. Examine a saída para o tamanho total do disco, o tipo de tabela de partição, o número da partição, o ponto inicial da partição e quaisquer sinalizadores, como inicialização. Para tabelas de partição gpt, observe o nome da partição; para tabelas de partições msdos, observe o campo Tipo (principal ou estendido). Esses valores são usados nas próximas etapas. Você pode imprimir todas essas informações através do comando print .
  7. Exclua a entrada da partição para a partição usando o número da etapa anterior. Por exemplo: rm partitionNumber .
  8. Crie uma nova partição que se estenda até o final do volume. (Para o exemplo da tabela de partições msdos) Observe o ponto inicial e o tipo de partição da partição 1 acima. Para o exemplo msdos, existe um ponto inicial de 2048s e um tipo de partição de primário. Execute o comando mkpart com um tipo de partição primária, o ponto inicial da partição 1 e 100% para usar todo o espaço disponível. Exemplo: mkpart primary 2048s 100% .
  9. Execute o comando de impressão novamente para verificar sua partição.
  10. Verifique se todos os sinalizadores que estavam presentes anteriormente ainda estão presentes para a partição que você expandiu. Em alguns casos, o sinalizador de inicialização pode ser perdido. Se um sinalizador foi removido da partição quando foi expandido, adicione o sinalizador com o seguinte comando, substituindo o seu número de partição e o nome do sinalizador. Por exemplo, o comando a seguir adiciona o sinalizador de inicialização à partição 1. E.g: set 1 boot on .
  11. Execute o comando quit para sair de parted .
  12. Verifique o sistema de arquivos para certificar-se de que não haja erros (isso é necessário antes que você possa estender o sistema de arquivos). Observe o tipo de sistema de arquivos dos comandos print anteriores. Escolha um dos comandos abaixo com base no seu tipo de sistema de arquivos; Se você estiver usando um sistema de arquivos diferente, consulte a documentação desse sistema de arquivos para determinar o comando de verificação correto.

    Para sistemas de arquivos ext3 ou ext4: sudo e2fsck -f /dev/partitionName

    Para sistemas de arquivos xfs: sudo xfs_repair /dev/partitionName

Se você tiver uma partição não raiz, basta remontá-la e tudo deverá funcionar.

Atenciosamente, Megajin

    
por Megajin 10.04.2017 / 09:07