VirtualBox - Reduzindo tamanho de discos rígidos virtuais

Publicado por Antônio Vinícius Menezes Medeiros em 22/01/2014

[ Hits: 25.415 ]

Blog: https://antoniomedeiros.dev/

 


VirtualBox - Reduzindo tamanho de discos rígidos virtuais



É verdade que quando criamos um disco rígido virtual dinamicamente alocado no VirtualBox, ele cresce à medida em que arquivos são gravados. No entanto, seu tamanho não diminui à medida em que excluímos arquivos.

Veja agora, como é possível reduzir discos rígidos desse tipo no VirtualBox.

Primeiro, é necessário executar um utilitário na máquina virtual (guest), que vai transformar todo o espaço livre em bits zero no disco rígido virtual. Se sua máquina virtual roda GNU/Linux, esse utilitário é o zerofree. Se roda Windows, há o SDelete.

A página na qual descobri o zerofree, recomenda reiniciar o GNU/Linux (da máquina virtual) no modo de recuperação (Safe Mode ou Recovery Mode) para executar o zerofree. Para simplificar a vida, eu prefiro inicializar a máquina virtual utilizando um Live-CD.

Se você tiver um Live-CD do Ubuntu, o zerofree pode ser instalado nele, via:

# apt-get install zerofree

O openSUSE também possui o zerofree nos repositórios oficiais da distribuição:

# zypper in zerofree

Se for usar o Live-CD de outra distribuição, pesquise na Internet sobre como obter o zerofree para a sua distribuição.

Se você não souber identificar o disco rígido, o utilitário fdisk pode dar uma pista:

# fdisk -l

No meu caso, vou compactar o /dev/sda1.

Montamos o disco rígido como somente leitura em uma pasta temporária e executamos o zerofree nele:

# mkdir /mnt/tmp
# mount -o ro /dev/sda1 /mnt/tmp
# zerofree /dev/sda1


Se sua máquina virtual roda Windows, você deve baixar o SDelete, abrir o prompt de comando, ir até a pasta onde o SDelete foi baixado e executar o comando:

> sdelete -c C:/

Onde C é a letra da unidade cujo espaço livre deseja-se converter em bits zero.

Após executar o zerofree ou o SDelete, devemos voltar à máquina real (host) e executar o utilitário do VirtualBox que vai de fato compactar o disco rígido virtual, reduzindo seu tamanho fisicamente.

Se sua máquina real roda GNU/Linux:

VBoxManage modifyhd /caminho/para/o/hd/virtual.vdi --compact

Se sua máquina real roda Windows, provavelmente você terá que ir até a pasta do VirtualBox para executar o comando:

> cd "C:\Program Files\Oracle\VirtualBox"
> VBoxManage modifyhd "C:\caminho\para\o\hd\virtual.vdi" --compact


Foi assim que, hoje, consegui reduzir um disco rígido virtual de 6,5 GB para 5 GB. Foi uma redução pequena, mas isso varia de um caso para outro. O autor desse post no Make Tech Easier, conseguiu uma redução de 45% no espaço que o disco rígido virtual ocupava (de 10 GB para 5,5 GB).

Abraço a todos e até mais!

Referências:
Essa dica foi publicada originalmente no meu blog.

Antônio Vinícius.

Outras dicas deste autor

Resolvendo problemas de autenticidade de pacotes

Instalação de drivers proprietários no Kubuntu

Ícones na Área de Trabalho do KDE 4

Restaurando o GRUB após a instalação de outro sistema operacional

Reduzindo o tamanho dos executáveis gerados pelo Lazarus (via IDE)

Leitura recomendada

Mixando logs do Asterisk (ou quaisquer arquivos de áudio)

Como dar efeito 3D em suas fotos sem precisar de óculos especiais

Reconfigurar painel do GNOME 3 Classic

Ubuntu (+ restricted-extras) x Linux Mint

Criando um disquete gerenciador de boot com o Slackware a partir do Windows

  

Comentários
[1] Comentário enviado por removido em 29/01/2014 - 17:16h

Valeu cara, muito útil. Eu costumava fazer isso com frequência no VMWare, mas em vez do programa que vc citou eu usava o seguinte comando na vm-guest:

# cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

Creio que deve funcionar também para o VBox, nunca testei.

Abraço.

[2] Comentário enviado por alemartinsale em 01/07/2014 - 17:32h

Usei o #cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill ao invés do zerofree, mas o comando final #VBoxManage modifyhd /caminho/do/hd/vm.vdi --compact igual ao seu $ VBoxManage modifyhd /caminho/para/o/hd/virtual.vdi --compact ...... em uma máquina que inicialmente tinha 4.2GB, cresceu com o zero.fill até 7.8GB e com o último comando reduziu para 7.2GB.......

Até postei a dúvida no fórum
http://www.vivaolinux.com.br/topico/Virtual-Box-1/Diminuir-volume-dinamico-VBox

Não sei o que deu errado..... mas também não entendi a parte de você subir a vm em modo de recuperação e instalar o zerofree pelo cd....

Por favor, me ajudem!! =]

Valeuu

[3] Comentário enviado por Evalmek em 26/04/2016 - 00:22h

Utilizando o comando sdelete -c c: não reduziu o tamanho ao final do processo,mas utilizando -z o processo funcionou normalmente:
sdelete -z c:

[4] Comentário enviado por tayronetalles em 21/06/2017 - 10:48h

O processo de limpeza demora em torno de quantos minutos?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts