Vboxmanage/compact

Aus Foxwiki


You have to do the following steps:

  1. Run defrag in the guest (Windows only)
  2. Nullify free space:

With a Linux Guest run this:

dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k
rm /var/tmp/bigemptyfile 

or

telinit 1 
mount -o remount,ro /dev/sda1 zerofree -v /dev/sda1 

With a Windows Guest

  1. download SDelete from Sysinternals
  2. and run this:
sdelete.exe c: -z 

replace C: with the drive letter of the VDI

Shutdown the guest VM

  1. Now run VBoxManage's modifymedium command with the --compact option:

With a Linux Host run this:

vboxmanage modifymedium --compact /path/to/thedisk.vdi 

With a Windows Host run this:

VBoxManage.exe modifymedium --compact c:\path\to\thedisk.vdi 

With a Mac Host run this:

VBoxManage modifymedium --compact /path/to/thedisk.vdi 

VBoxManage is located here: /Applications/VirtualBox.app/Contents/MacOS/VBoxManage

This reduces the vdi size.

# vboxmanage modifymedium --compact windows10.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%