I have got a Virtualbox with debian to build up windows machines using unattended. This virtual HD went up to 54Gb but internaly on 28Gb were used. So when I wanted to move out of that machine it took ages. I wonder if there is a easy way to clean up.
Found it.
start with liveCD,
install zerofree ( apt-get install zerofree)
zerofree /dev/sda1
When finish shutdown the virtual machine and execute on the host system:
VBoxManage modifyhd vdi_file.vdi compact