Redimensione a partição no VPS sem perder dados

Redimensione a partição no VPS sem perder dados

Tenho um pequeno servidor VPS com 40 GB de espaço em disco. Comprei 40 GB extras e agora gostaria de aumentar /o tamanho da partição.

Minhas partições ficam assim:

Tamanho das partições

/dev/vda1é /boote /dev/vda5é meu /. Meu provedor VPS adicionou /dev/vda2. Não tenho certeza se isso está correto, mas tentei remover /dev/vda5e /dev/vda2criar /dev/vda5, mas não tenho essa opção, só posso recriar dispositivos com ID 2-4 e não 5 onde /está o meu.

Responder1

Existe um utilitário chamado growpartque aumentará as partições com segurança assim que seu provedor expandir seu disco virtual. O único truque no seu caso é que eles criaram desnecessariamente uma partição estendida/lógica do DOS quando ela não era necessária. Assim você terá que redimensionar a partição estendida e depois a partição lógica que ela contém.

sudo apt install cloud-guest-utils

O growpartutilitário aceita o número do disco e da partição como argumentos separados, portanto, para redimensionar /dev/vda2você escreverá:

sudo growpart /dev/vda 2

Redimensione a partição estendida /dev/vda2primeiro e depois redimensione /dev/vda5da mesma maneira.

sudo growpart /dev/vda 2
sudo growpart /dev/vda 5

Agora você deve conseguir redimensionar seu sistema de arquivos. Se for ext4, resize2fs /dev/vda5funcionará. Para XFS, use xfs_growfs /.

Responder2

Pela sua fdisksaída, parece que você realmente tem um disco de 80 GB com 40 GBestendidopartição ( /dev/vda2) que contém dentro de 40 GBlógicopartição /dev/vda5que contém seu /sistema de arquivos. A partição estendida na verdade não contém nenhum arquivo, é apenas um "contêiner" para partições lógicas que permite superar o limite de 4 partições que menciono abaixo. Depois, há 40 GB de espaço não alocado que fdisknão aparece de forma alguma.

Você pode ter várias opções de como usar esse espaço não alocado. Presumo que você não esteja usando o LVM porque, se o fizer, o procedimento seria completamente diferente, pois o LVM possui ferramentas próprias para redimensionar volumes. No entanto, sua fdisksaída não indica nenhuma menção à partição LVM.

Eu não recomendaria excluir e recriar partições, fdiskpois isso sempre causa risco de perda de dados. Portanto, se quiser fazer isso com segurança, você pode tentar o seguinte:

A primeira opção é ter duas partições de 40 GB e dividir seus arquivos de forma inteligente entre essas duas. Se você, por exemplo, mantiver muitos arquivos grandes em /home, poderá usar a nova partição para /homee todo o resto, exceto /homepermanecerá na partição antiga. Para fazer isso:

  1. use fdiskpara criar outra partição primária (provavelmente aparecerá como /dev/vda3!) naquele espaço não alocado e formate-a como um novo sistema de arquivos Linux com mkfs /dev/vda3. Pode haver no máximo 4 partições primárias ou estendidas no total, com no máximo uma delas sendo estendida, portanto há espaço para outra partição. Não é um layout de partição recomendado onde vem uma partição primáriadepoisa partição estendida, mas provavelmente funcionará.

  2. renomeie seu /homediretório para /old_home(certifique-se de que não esteja sendo usado no momento, então faça isso do root, sem nenhum usuário normal conectado) e crie um novo /homediretório com o mesmo proprietário e permissões do antigo.

  3. monte o /dev/vda3sistema de arquivos /homecom o comando: mount /dev/vda3 /home. Se isso funcionar, você deve editar /etc/fstabpara que o novo sistema de arquivos seja montado automaticamente quando o sistema for inicializado. Provavelmente você /etc/fstabcontém atualmente duas linhas para vda1 e vda5, algo assim (estou inventando esta agora, a sua pode ser diferente):

    /dev/vda5 / ext4 defaults 0 1

    /dev/vda1 /boot ext4 defaults 0 2

    Adicione uma linha semelhante para vda3 que diz, por exemplo:

    /dev/vda3 /home ext4 defaults 0 2

    (se o seu arquivo tiver outra coisa em vez de "ext4" ou "defaults", basta copiar esses parâmetros para a nova linha). Agora grave qualquer arquivo no novo /homediretório e reinicie o sistema. Se após a reinicialização o arquivo que você colocou no /homediretório ainda estiver lá, significa que /homefoi montado corretamente na inicialização.

  4. Agora você pode mover tudo de /old_homepara /homee excluir o /old_homediretório vazio.

Considero esse método geralmente o mais seguro e fácil para mim e já o usei várias vezes. No entanto, tem a desvantagem de ter 2x40 GB em vez de 80 GB de espaço, o que às vezes pode ser bom, às vezes ruim - por exemplo, quando você deseja evitar o preenchimento acidental do disco do sistema com arquivos do usuário, é melhor ter /homecomo partição separada.

Então outra opção é usar GNUse separaramprograma para redimensionar suas partições vda2 e vda5 (primeiro vda2 e depois vda5, pois a primeira contém a última) para 80 GB. partedfoi projetado especificamente para modificar partições sem perder dados, o que fdisknão pode ser garantido. Tenho certeza partedque está no repositório Debian, então você pode instalá-lo com o apt.

Depois de redimensionar a partição, use o comando resize2fs /dev/vda5para estender seu /sistema de arquivos para 80 GB completos.

Responder3

Normalmente, neste caso, você usaria fdisk /dev/vda.

  • Anote os setores iniciais das partições 2 e 5.
  • Remova a partição 5.
  • Remova a partição 2.
  • Recrie a partição 2 com o setor inicial antigo e o novo final (valor padrão). Isto é umestendidopartição.
  • Recrie a partição 5 com o setor inicial antigo e o novo final (valor padrão). Isto é umlógicopartição.

Depois que a tabela estiver escrita e ativa (por exemplo, reinicialização), você ainda precisará estender o sistema de arquivos em /dev/vda5uso resize2fsou o que for apropriado para o sistema de arquivos naquela partição.

Acima de tudo, certifique-se de ter um bom backup antes de tentar fazer isso.

informação relacionada