How to Shrink large Hyper-V VM

hyper-vvirtualizationwindows-server-2008-r2windows-server-2012

Using Disk2VHD utility I converted my bare-metal OS into Hyper-V VHD –
http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx

And I could obtain a huge 190GB VHD file. Apart from performance issues, this VHD worked fine as guest when hosted on Windows Server 200 R2, Hyper-V.

Having realized need to keeping only system files and application installations on VHD.
I have deleted most of the junk data from this VHD and now it contains only 20-25 GB. But I am not able to shrink the VHD VM. Having done some research, I came to know, this as a limitation of .VHD files.

Subsequently I followed these two step using Edit Virtual Hard Wizard on Windows 2012 Box.

  1. Convert from VHD to VHDX (took close to 3 hrs.)
  2. Compact (Another 4 hrs.)

This did not ever shrink the VHDX either. Does Hyper-V does not provide proper support to handle large VHDs or VHDXs whose size are the range of 200GB.

Best Answer

Do you really need a 190 GB drive? If you are running 2008 R2 in he guest, then shrink your partition from within the guest, then compact. This will achieve the best results.

  1. Defrag the drive.
  2. Open Disk Management and shrink the partition to something more reasonable, like 40 GB. Make sure all of the free space is at the end of the drive.
  3. Shut down the guest.
  4. Compact the VHD.