Compress vdi file (virtualbox)

I mainly develop inside of a virtual server / application. In the last year I have been using Virtualbox instead of Virtual PC. I have a base image that I use as a testing machine. It is a base Windows XP image. I recently discovered that I could save some disk space by using a few commands to shrink / compact the vdi file.

To do this you will need to install a small application Nullfile ( This allows the empty disk space / unused data bytes to be filled with zero-bytes. You can read more about this at (

Once you have the file copy it to your Virtual Image. Run a disk defrag on your Virtual box system. After running a few defrags, you now need to just run the nullfile.exe. You only need to doubleclick the .exe.

Once the file is done, shut down your virtual image.
Open a command prompt and navigate to the directory where your vdi file is located. Mine is c:\vpc

Once in that directory we will be running the vboxmanage utility. On my Windows 7 pc it is located at C:\Program Files\Sun\VirtualBox\VBoxManage.exe

Here is the command we will be using modifyhd -compact

“C:\Program Files\Sun\VirtualBox\VBoxManage.exe” modifyhd -compact “c:\vpc\BaseXP.vdi”

Once this was completed my virtual image went from 4.3Gig to 2.7Gig.

Have fun with this utility. I was able to shrink my typical Windows 2008 server image to a much smaller size.

1 thought on “Compress vdi file (virtualbox)”

  1. Also, disable file system compression on target host before running nullfile, or it wont be filling disk with null bytes but with compressed junk.

Leave a Comment