domingo, 5 de maio de 2019

Como encolher uma máquina virtual do VirtualBox e liberar espaço em disco

Por padrão, o VirtualBox cria discos dinâmicos (.vdi) que crescem com o tempo à medida que você adiciona dados. Contudo, se você excluir dados da máquina virtual posteriormente, você verá que  que o disco não diminui automaticamente.

Você pode reduzir manualmente um disco dinâmico usando  um conjunto de comandos.

Primeiro passo - remover arquivos desnecessários

Você deve apagar todos os dados que você não deseja mais no disco dentro da máquina virtual para liberar espaço antes de continuar. Exclua os arquivos que você não precisa, desinstale os programas que não são mais usados e esvazie sua lixeira.

Segundo passo - zerar os blocos não usados

Então, você precisará substituir esse espaço vazio por zeros.
Você precisará instalar o utilitário zerofree. Ele está disponível nos repositórios de software de muitas distribuições Linux - com o Ubuntu.
No Ubuntu para instalar este programa basta executar o seguinte comando no terminal dentro de sua máquina virtual:
$ sudo apt-get install zerofree

Você não pode usar o zerofree na sua partição raiz (/) no ambiente Linux padrão.
Para liberar espaço nesta partição, você precisará inicializar em um modo de recuperação no qual a partição raiz normal não está montada. Assim você precisará parar o funcionamento da máquina virtual para isto.

Para entrar neste modo de recuparação, reinicie sua máquina virtual e pressione repetidamente a tecla "Esc" enquanto estiver inicializando para acessar o menu do GRUB. Quando o menu GRUB aparecer, selecione “* Opções avançadas para o Ubuntu” e pressione Enter.
Selecione a opção (modo de recuperação) associada ao kernel mais recente do Linux - ou seja, a opção que tenha o maior número de versão próximo ao topo da lista. Pressione Enter para selecioná-la. Selecione no menu que aparece a opção de obter o shell do linux.



Se sua máquina virtual foi criada com as configurações padrão do VirtualBox com Ubuntu, ela terá apenas uma partição denominada /dev/sda1 que é a partição raiz.
Você precisará adaptar o próximo comando se você configurou de maneira diferente seu Linux, por exemplo, com vários discos ou várias partições. Se tiver várias partições ou discos, você deverá usar o zerofree para cada um deles
O comando abaixo zera os blocos não usados de /dev/sda1 (note que ele não apaga arquivos):

$ zerofree -v /dev/sda1

Terceiro passo - liberar o espaço

Desligue a máquina virtual e entre no shell de sua máquina física.
Primeiro localize o disco que você quer reduzir usando o comando

$ VBoxManage list hdds


Agora você deve dar o comando para reduzir o tamanho do disco:
$ VBoxManage.exe modifymedium disk /VMS/VM/WINET/Simulação/Simulação.vdi --compact


Um comentário:

  1. Apesar de ser um post antigo, o procedimento ainda funciona com o Ubuntu 22 e 24.

    ResponderExcluir

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...