Source: StackOverflow
With a Linux Guest run this:
sudo dd if=/dev/zero | pv | sudo dd of=/bigemptyfile bs=4096k
sudo rm -rf /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)
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