Compacting VirtualBox’s VDI file size?

Run defrag in the guest (Windows only)

Nullify free space:

With a Linux Guest run this:

sudo dd if=/dev/zero | pv | sudo dd of=/bigemptyfile bs=4096k
sudo rm -rf /bigemptyfile


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 modifyhd command with the –compact option:

With a Linux Host run this:

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

With a Windows Host run this:

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

With a Mac Host run this:

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

This reduces the vdi size.


Leave a Reply