Expandir partição e sistema de ficheiros num VPS Linux

3 min
Alojamento VPS/VDS

Depois de um upgrade de disco no seu VPS Linux Infrawire, o disco virtual fica maior, mas a partição e o sistema de ficheiros mantêm o tamanho antigo. É preciso expandir ambos manualmente, a quente, sem desmontar a raiz.

Este guia cobre partições clássicas (ext4 e XFS) e instalações com LVM no Ubuntu 24.04, Debian 12, AlmaLinux 9 e Rocky 9.

📋 Pré-requisitos

  • Um VPS cujo disco já foi aumentado (o novo tamanho aparece no lsblk)
  • Acesso SSH root (o IP e a palavra-passe root estão na sua área de cliente)
  • Uma cópia de segurança recente dos dados importantes

1. Fazer backup antes de mexer nas partições

Redimensionar um sistema de ficheiros ext4 ou XFS montado é rotina, mas um erro na tabela de partições pode destruir dados. Guarde primeiro o essencial:

Bash
# Arquivar os dados insubstituíveis tar -czf /root/backup-etc.tar.gz /etc rsync -avz /var/www/ USER@BACKUP_HOST:/backups/www/ # Guardar a tabela de partições (útil para a restaurar) sfdisk -d /dev/vda > /root/vda-partition-table.txt

2. Identificar o disco, a partição e o sistema de ficheiros

Bash
lsblk -f df -hT /

Saída típica: disco vda de 80G, partição vda1 de 40G montada em /, sistema de ficheiros ext4 ou xfs. Se a raiz estiver em /dev/mapper/..., usa LVM: veja a secção 5. O disco também pode chamar-se sda ou nvme0n1 (as partições terminam então em p1).

3. Expandir a partição com growpart

Instale a ferramenta. No Ubuntu e no Debian o pacote é cloud-guest-utils; no AlmaLinux e no Rocky é cloud-utils-growpart:

Bash
# Ubuntu / Debian apt update && apt install -y cloud-guest-utils # AlmaLinux / Rocky dnf install -y cloud-utils-growpart

Depois expanda a partição número 1 do disco /dev/vda (atenção ao espaço entre o disco e o número):

Bash
growpart /dev/vda 1

Se a mensagem indicar NOCHANGE, a partição já ocupa todo o espaço. Algumas imagens têm ainda uma pequena partição depois da raiz (um swap, por exemplo): nesse caso o growpart não consegue expandir a raiz e é preciso remover ou mover primeiro essa partição.

Confirme que o kernel vê o novo tamanho:

Bash
lsblk /dev/vda # Se ainda aparecer o tamanho antigo: partprobe /dev/vda

4. Expandir o sistema de ficheiros

Use o comando correspondente ao seu tipo de sistema de ficheiros (indicado por lsblk -f).

Para ext4:

Bash
resize2fs /dev/vda1

Para XFS (predefinição no AlmaLinux e no Rocky). O argumento é o ponto de montagem e não o dispositivo, e o XFS só pode crescer, nunca encolher:

Bash
xfs_growfs /

5. Caso LVM: pvresize e lvextend

Quando o volume lógico raiz está em LVM, há mais uma camada: partição, depois volume físico, depois volume lógico e por fim o sistema de ficheiros.

Bash
lsblk pvs && vgs && lvs # 1. Expandir a partição que contém o volume físico (aqui vda3) growpart /dev/vda 3 # 2. Avisar o LVM de que o volume físico é maior pvresize /dev/vda3 # 3. Estender o volume lógico e o seu sistema de ficheiros de uma vez (-r) lvextend -r -l +100%FREE /dev/mapper/VG_NAME-LV_NAME

A opção -r chama por si a ferramenta certa (resize2fs ou xfs_growfs). Adapte VG_NAME-LV_NAME à saída de lvs, por exemplo /dev/ubuntu-vg/ubuntu-lv. Para usar apenas parte do espaço livre, troque -l +100%FREE por -L +10G.

6. Verificar o resultado

Bash
df -h / lsblk

A coluna Size do df -h deve agora corresponder à nova capacidade, e o lsblk deve mostrar a partição a ocupar todo o disco. Não é preciso reiniciar: as suas aplicações continuam a funcionar durante toda a operação.

🛠️ Resolução de problemas

growpart: command not found: o pacote não está instalado. Instale cloud-guest-utils (apt) ou cloud-utils-growpart (dnf).

NOCHANGE: partition 1 could not be grown: ou o disco não foi realmente aumentado (compare o lsblk com o que contratou), ou há outra partição logo a seguir à que quer expandir. Verifique com fdisk -l /dev/vda.

resize2fs: Bad magic number in super-block: o sistema de ficheiros é provavelmente XFS e não ext4. Execute lsblk -f e use xfs_growfs /.

xfs_growfs: / is not a mounted XFS filesystem: passou um nome de dispositivo, ou o sistema de ficheiros é ext4. Indique o ponto de montagem e verifique antes o tipo.

lvextend indica que não há extents livres: saltou o growpart ou o pvresize. Execute pvs e veja a coluna PFree.


🎉 O seu espaço de disco adicional já é utilizável: sem reinício, sem interrupção, e o df -h prova-o!

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções

Utilizamos cookies

Utilizamos cookies analíticos para melhorar a sua experiência no nosso site. Nenhum dado é vendido a terceiros. Saiba mais na nossa política de privacidade.