How do I shrink the size of a .VHD when I know it’s inflated unnecessarily?”

3 Jan

Normally, people don’t care about file size bloat that much however when you’re using Virtual PC .VHDs you may be talking about 3-4GB of wasted storage or more.  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:

  1. Clear out the machine of filler
    I recommend installing CCLEANER.EXE from http://ccleaner.com which deletes all temporary files from the Windows installation, Internet Explorer cache, the Recycle Bin, and any number of other “garbage”/”temp” directories in the VPC.
  2. Disable hibernation
    If you have hiberation turned on, there’s a colossal sized file called hiberfil.sys in the root of the .VHD.  Go into Power options in Control Panel and disable hiberation to get rid of this file.
  3. 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:
    c:\program files\microsoft virtual pc\virtual machine additions\virtual disk precompactor.iso
  4. 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
  5. Shutdown the Virtual PC
  6. Run the VPC2007 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.
  7. Compact the .VHD
    Select the “Compact” option then select “Replacing the original file”.  This will take a few minutes.

When this process finishes, you should have a .VHD file with a much smaller size.