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
Bashlsblk -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):
Bashgrowpart /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:
Bashlsblk /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:
Bashresize2fs /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:
Bashxfs_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.
Bashlsblk 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
Bashdf -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!