How do you convert a VHD file into a VHDX file?

VHDX is the new and default format of virtual hard disk (VDH) that is provided by Windows 8 Client Hyper-V and Windows Server 2012 Hyper-V. There are many reasons to favor VHDX files over VHD files, including:

  • scalability to 64 TB instead of 2040 GB
  • better performance by offering 4 K sector matching
  • protection against data corruption during power outages


New virtual machines are probably being created using this new format. But don’t worry, you can convert existing virtual hard disks of the VHD format that are in use by virtual machines.
Please note that VHDX files cannot be used on versions of Hyper-V prior to Windows 8. Most people won’t want to go back to older versions once they’ve upgraded, but you can convert VHDX files back into VHD. Also note that the conversion is done offline. Maybe it would make sense to use Live Storage Migration to move the virtual machine to some very fast storage. This will minimize the time required to read the VHD and create the VHDX.
The two basic methods you can use to convert a VHD into a VHDX file are Hyper-V Manager and PowerShell.

Advertisement

WARNING
Do not attempt to convert a VHD to a VHDX if any of the following are true:

  • You have created a snapshot of the virtual machine
  • You are replicating the VHD using Hyper-V Replica
  • The VHD is the parent to one or more differential virtual hard disks

Using Hyper-V Manager to Convert to VHDX

You can find the Edit Disk link in Hyper-V Manager under Actions. This launches the Edit Virtual Hard Disk Wizard. Browse and select the VHD file in question. The Choose Action screen offers you possible actions that you can do to edit this disk. The Convert action will create a new VHDX file using the selected VHD file as a source.

VHD to VHDX

Next you will select the format of virtual hard disk you want, so go ahead and choose the VHDX option. This wizard will allow you to create the VHDX file as either a dynamically expanding or fixed-size VHDX file. The last step is to select where the new VHDX will be created and what it will be called.