growpart - Redimensionar partição do disco

growpart - Imagem destacada
growpart - Imagem destacada

O growpart é um utilitário que podemos usar para estender uma partição em uma tabela de partição para preencher o espaço livre disponível no disco. Esse utilitário esta dentro do pacote “cloud-utils-growpart” para sistema baseado em Red Hat e no pacote “cloud-guest-utils” para sistema baseado em Debian.

Então, existem algumas situações em que a partição raiz está ficando sem espaço em disco e mesmo compactando arquivos, excluindo arquivos de log antigos e desinstalando aplicações que não estão sendo usados há algum tempo, não ajudou, portanto, nesses casos, não temos outra opção a não ser estender o sistema de arquivos, é claro, se assim tiver espaço disponível.

Em nosso caso de uso, o problema foi que após provisionar uma vm (virtual machine) do Rocky Linux 9 com o Vagranfile a box ficou com o tamanho de 10 GB (default) se não especificar o tamanho para o disco.

A partição raiz do Rocky Linux é baseado em sistema de arquivos xfs, sendo assim, veja com o growpart – redimensionar partição do disco físico e o com o xfs_growfs estender o tamanho do sistema de arquivos xfs.

growpart – Redimensionar partição do disco

Como já informado, após ser provisionado a vm do Rocky Linux, notamos que o tamanho do disco de 10 GB (default da box) não seria atendido para o qual foi proposto. Veja a imagem abaixo mostrando o tamanho do disco e da partição raiz com os comandos abaixo.

Terminal
hostnamectl ; lsblk ; df -Th
Comandos lsblk e df -Th disco de 10GB

Sendo assim, foi inserido no Vagrantfile a opção ‘machine_virtual_size‘ setando o valor de 30 (30 GB), com isso, o provisionamento criará o disco de 30 GB, porém, observe que o sistema de arquivos xfs só reconhecerá os 10 GB (tamanho default da box).

Veja abaixo o trecho do arquivo Vagrantfile com a opção ‘machine_virtual_size‘ inserida.

Arquivo Vagrantfile

Criando a imagem com o comando vagrant up.

Terminal
vagrant up vg-rocky-elk
Comando vagrant up provisionando

Como informado, podemos ver que após o provisionamento, foi criado o disco de 30 GB, porém, o sistema de arquivos xfs só reconheceu os 10 GB (default da box), e deixando apenas 7.8 GB para a raiz “/” do sistema.

Comandos lsblk e df -Th disco de 30GB

Agora, identificado o problema, o growport tomará a ação para reescrever a tabela de partição para que a partição use todo o espaço livre. Mas antes, caso não tenha o pacote cloud-utils-growpart, instale-o.

Terminal
sudo dnf install cloud-utils-growpart

Em seguida, execute o growpart identificando a partição que será estendida conforme abaixo.

Terminal
sudo growpart /dev/vda 5

Veja a saída do comando abaixo.

Comando growpart

Agora, vamos executar o xfs_growfs na partição que foi estendida, em nosso caso a raiz “/ “, para que o sistema de arquivos xfs use todo o espaço.

Terminal
sudo xfs_growfs /
Comando xfs_growfs

Após as etapas acima, verifique com os comandos lsblk e df -Th e veja que agora o sistema de arquivos raiz “/” foi estendido e está usando todo tamanho livre do disco de 30 GB que foi provisionado com o vagrant.

Comandos lsblk e df -Th particão de 30GB

Agora o sistema está apto para o que foi proposto e tendo espaço livre suficiente para trabalhar, rs!

Então é isso pessoal, até a próxima!