Uma possibilidade é preencher o espaço vazio de dentro da VM.
No Windows ( sdelete é uma ferramenta Sysinternals e X: é a letra da a unidade):
sdelete -z X:
No Linux:
dd if=/dev/zero of=/tmp/zero
rm /tmp/zero
(O comando dd pode ser executado mais rapidamente se você disser dd if=/dev/zero of=/tmp/zero bs=1M .)
E então use o comando (do host):
VBoxManage.exe modifyhd thedisk.vdi --compact