For Linux VM, first you need to zero out the data on the disk:
sudo dd if=/dev/zero of=zero.tmp bs=10M; rm -f zero.tmp
zerofree command should be better but there are problems running it on Ubuntu systems
Next shutdown the VM and run the VBoxManage.exe modifyhd compact
c:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "c:\VirtServer\VmDiskFile.vdi" compact
First, make sure that the Virtual Box binaries are in your path. This is done by default on Linux, but in Windows, you might have to manually add the installation directory's bin folder to your path.
Then, you need to know either your Guest OS name or UUID number. You can find both of these by typing
VBoxManage list vms
into a terminal. From there, simply type
VBoxHeadless -s <Guest-OS-Name>
or
VBoxHeadless -s <UUID>
This launches the VM without attaching its display to a window. Now all you have to do is set this command as a boot-time service that runs in the background, and you'll be set.
VBox does support vmdk disk from VMware but Oracle prefers vdi files. Here are instructions for clean recreation of the guest XP machine