In this post we’ll look at how to convert a Hyper-V virtual machine using the VHDX format virtual disk to a VMware Workstation virtual machine using the vmdk format virtual disk.
Until Windows 8 I’ve used VMware Workstation for testing, but with the advent of Windows 8 and the built in Hyper-V I decided to give it a try and have been using it quite happily ever since. In the near future though I’m going to be looking at some vSphere testing, and from memory recall that you can nest it within VMware Workstation, so I thought I would give the latest version a go.
The only problem is I don’t want to rebuild my current test environments so I need some way of converting the VHDX that Hyper-V uses to vmdk that VMware Workstation uses.
My first thought was VMware converter, but that doesn’t support VHDX, so looking around on the Internet I cam across a nifty bit of FREE software from StarWind Software- StarWind V2V Converter.
You have to register to download the product, but once you have and installed it below are the steps I took to convert a UEFI Boot, Gen 2, 2012 R2, Hyper-V VM using VHDX to vmdk for VMware Workstation.
Open StarWind V2V Converter, click Next.
Specify the source disk image, click Next. In my case I’m converting a thin provisioned VHDX.
Specify the destination format, click Next.
Specify the VMDK options. As I was using a Gen 2 VM my disk was actully SCSI, but i tested the default settings and they appear to work, so select IDE and click Next. Note: SCSI also seems to work fine here.
Specify the destination for the new disk, click Next.
The conversion will start.
Click Finish once complete. My original disk was thin provisioned, so only about 10GB and was located on an SSD, so the conversion time was really quick.
Now we have a new vmdk, let’s setup a new Virtual Machine in VMware Workstation and see if it works.
In VMware Workstation, run the New Virtual Machine Wizard, select Custom and click Next.
Select the Hardware Compatibility, I used the default of version 11, and click Next.
Select to install the operating system later, click Next.
Select the guest OS, in my case Windows 2012 (although the Vm is actually R2), click Next.
Specify a Name and location, click Next.
If you saved the vmdk directly into the location of the new VM location above you may get the warning message below, click Continue.
Select EFI Firmware, click Next.
Specify the Number of processors and cores, click Next.
Specify the amount of memory, click Next.
Specify the Network Type, click Next.
Specify the I/O Controller Type, click Next.
Specify the disk type, click Next. Although I have converted it to IDE vmdk in StarWinds, the default disk type of SCSI seems to work.
Select use existing disk, click Next.
Copy the vmdk into the VM location you specified above.
Select the new vmdk disk, click Next.
Select Keep Existing Format, click Next. My thoughts are the fewer things we change during the conversion the more likely it is to work! Note: Converting worked fine here on a subsequent VM.
Read the summary, and click Finish.
On starting up the virtual machine you’ll see it configuring devices.
Then with any luck, you’ll have a newly converted vm.
Thank you StarWind, you’ve just saved me a whole lot of time!
Note: For my SBS 2011 test server when creating the VM I selected BIOS not EFI, and IDE not SCSI to make it boot.
Related Posts:
1. How to Inspect and Edit virtual disks in Hyper-V
2. How to create a Hyper-V VM template without VMM
3. How to enable Hyper-V on Windows 8.1 in VMware Workstation 9
4. How to upgrade Windows Server 2012 R2 evaluation version to full version
Thanks for your time documenting this, helped me a lot.
Thanks a lot.. It was very helpful
Thank you! Great and very useful post!
I also tried qemu-img for Windows, and it works perfectly.
It’s free, portable and it runs under CMD.
For example, to convert VHDX to VMDK:
qemu-img.exe convert FileSource-Image.vhdx -O vmdk FileDestination-Image.vmdk
Extracted from: http://www.sysadmit.com/2016/08/vmware-convertir-vhdx-en-vmdk.html
Thank you very much .. It was very useful, saved many hours of work.
Instead of qemu, virtualbox may be used to convert:
vbox-img convert –srcfilename disk.vhdx –dstfilename disk.vmdk –dstformat VMDK
(tested with Virtualbox 6.1, VHDK created by Windows Server 2016)