I wrote instructions on how to stop the runaway train of virtual machines hitting their max in VMware Fusion (and parallels, VPC, etc). Hopefully you'll find it beneficial:

The problem
As you use your virtual machine, it will continue to grow in size. I have my virtual XP machine to maximum of 10GB. All I really need it for is testing sites in IE6 (ick) and connecting to a SQL Server (ew). After installing a few things, running all Windows Updates... my vanilla XP is using 8GB. Wha? All I have installed is WinAmp, Cisco VNC Client, and SQL Manager. Whats going on?

"Well, when Windows deletes a file, it doesn’t actually delete the data in the disk; it just deletes the references/pointers in the file allocation table. So when ESX is exporting a VMDK and is looking at the raw disk, it’s seeing values that aren’t empty (non-zero), and exports them as such. The result is more disk space is used and takes longer to export the disk."

The solution
What we want to do is remove all unneccesary files. Caches, installer temps, restore points, and useless software. Then use VMware's Shrink utility to reclaim the disk space. Other virtualization vendors will have similar solutions which may vary. But the build up to the final 'shrink' is the same. All steps are carried out in the guest Windows XP virtual machine.

Results and Benefits

  • Smaller guest OS footprint (mine went from 8GB to 3GB)
  • Smaller virtual disk on the host
  • When zipped, the virtual disc is smaller again (mine is 1.4GB) - making it much more portable
  • With a cleaner guest OS, it runs much faster
  • Suspend/Resume is close to instant