Vboxmanage/compact
You have to do the following steps:
- Run defrag in the guest (Windows only)
- 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, download SDelete from Sysinternals and run this: sdelete.exe c: -z (replace C: with the drive letter of the VDI)# Shutdown the guest VM
- 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%