EXAMPLE: If the installation of a product uses 500MB to expand its setup files and only really consumes 200MB in the "C:\Program Files\" directory, the .VHD file expands accordingly. When the 500MB of setup files are subsequently deleted after installation has completed, the .VHD file doesn't shrink afterwards.
That is wasted host storage.
So the question is:
How do I shrink the size of a .VHD when I know it's inflated unnecessarily?
Here's how to do it:
- Clear out the machine of filler
Install ccleaner from http://ccleaner.com which deletes all temporary files from the Windows installation, Internet Explorer cache, Recycle Bin, and any number of other "garbage"/"temp" directories in the Virtual PC.
- Disable hibernation
Go into Power options in Control Panel and disable hiberation to get rid of the large hybernation file.
- Capture the Virtual Disk Precompactor .ISO In the menu of Virtual PC windows for your machine, capture the Virtual Disk Precompactor .ISO file which is located at:
x32: C:\Program Files\Microsoft Virtual PC\Virtual Machine Additions\Virtual Disk Precompactor.iso
x64: C:\Program Files (x86)\Microsoft Virtual PC\Virtual Machine Additions\Virtual Disk Precompactor.iso
- Run the Precompactor
Go to My Computer and double click on the mounted disk. It will begin to run the precompactor software which will essentially zero out all the free space on the disk, making it available for elimination from the file by the Virtual Disk Wizard, which we will use later. This process may take upwards of 15 minutes depending on the size of the VHD file.
- Shutdown the Virtual PC
- Run the Virtual PC - Virtual Disk Wizard
From the Virtual PC console, click File --> Virtual Disk Wizard and "Edit an existing virtual disk" It will ask you to identify the .VHD file to reduce in size - select it.
- Compact the .VHD
Select the "Compact" option then select "Replacing the original file". This again will take a while.
The other final thing you can do is on your host PC, right-click and compress the folder:
C:\Users\Public\Downloads\My Virtual Machines
As an example:
- Before compression: The size of my 8Gb VHD file (windows xp 32bit) was reported as only taking 3Gb physical space due to folder compression.
- After compression: After following the steps above, the VHD file was 3.5Gb and was reported as taking 2.6Gb physical space due to folder compression.