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 2040GB
- better performance by offering 4 K sector matching
- protection against data corruption during power outages
Using PowerShell to Convert to VHDX
You can dispense with the time-consuming wizard by using PowerShell. This will be extremely useful if you need to use a script to automate lots of VHD conversions across many virtual machines. The following snippet will convert a VHD to a VHDX:
Convert-VHD –Path d:\VM01\Disk0.vhd –DestinationPath d:\VM01\Disk0.vhdx
When you create a new VHDX file (not converted) it has a physical sector size of 4 K. A converted VHDX file has a physical sector size of 512 Bytes. You can change the physical sector size of a converted VHDX by running this piece of PowerShell before you power up the virtual machine:
set-vhd d:\VM01\Disk0.vhdx -PhysicalSectorSizeBytes 4096
Now you have a virtual machine that is using the best kind of virtual machine storage, the VHDX format virtual hard disk
The above instructions do not finish the job. The next essential set of steps are:
- Open the settings of the virtual machine.
- Replace the VHD with the VHDX.
- Start and test the virtual machine.
- Delete the VHD file.