If you are testing or migrating virtual machines from VMware to Hyper-v virtualization platform, then this post will be helpful to convert VMDK files to VHD. Hyper-V can’t read the VMDK file which belongs to VMware products such as VMware workstation, VM player and their hypervisor server VMware ESXi.
I will be showing two methods to convert VMDK to VHD. There could be many reasons why you need this conversion, but here are the few possible reasons.
- You are migrating your existing virtual machines from VMware to Hyper-V
- Migrating existing on-premise VMware virtual machines to Azure Microsoft cloud platform manually. In this case, you need to convert the VMDK files to VHD then upload to Azure cloud.
- For any testing purpose.
Two Methods (VMDK to VHD)
1) Method 1: Using StarWind V2V Converter
It works well with StarWind V2V image converter. I’m showing this process on my old Windows 7 32 Bit host. My Guest VM also Windows 7, so don’t confuse.
Before starting the process, make sure to complete these two steps.
a) Remove VMware Tools from Guest.
If you start the conversion with VMware tools, then the VM may face booting issues in Hyper-V. Uninstall VMware tools from the control panel if it is Windows OS. Do this step for other guest Operating systems also.
b) Remove Snapshots
As you are aware, VMware keeps each snapshot separately from the original hard disk VMDK file. If you convert the main original disk file, then you will get older state of VM. The current version of VM may be working from a different snapshot file. Therefore, you have to merge snapshot files with the main file by deleting snapshots (Deleting snapshots from VMware console will automatically merge the current state to the main single file).
Steps with StarWind for VMDK to VHD
1) Download StarWind V2V image converter from the official site. Registration required.
2) Install the software and open.
3) Press Next and browse the source file. The source file should be the single VMDK file which has the current virtual machine.
It automatically detects the file type and size (disk size, not the actual file size).
4) Select virtual disk file format. Here I selected MS Virtual growable image type. It is like a dynamic VHD file. Always better to select growable type if you worry about disk space.
5) Next is the destination location. Make sure that there is enough space available for conversion.
6) Click Next to start. Starwind V2V is really cool with these steps and fast too. 7.5GB VMDK file converted to VHD in 9 Minutes on my computer. No headache with commands and scripts.
7) Now, create a new virtual machine and select the correct OS version in Hyper-V or Azure. Instead of creating a new black virtual disk file, attach the existing file which was converted from VMDK to VHD. Start the Virtual Machine. Below example shows how I attached the file to the older version of VirtualPC. It is applicable for Hyper-V on Windows 10 or any Windows servers.
8.) Since both platforms are different, Windows guest OS will install the required drivers and patches automatically. Let the installation finish, and restart guest VM if required.
9) That’s it; you will get a fully functional Virtual machine in Hyper-V which was converted from VMware. Install Hyper-V guest additions and start using.
Above screen shows the same Windows 7 guest OS in VMware player and Virtual PC. Hardly it took 15 minutes to complete this conversion with handy StarWind V2V tool.
2) Method 2: Microsoft Virtual Machine Converter 3.0 and PowerShell
Microsoft Virtual Machine Converter is a handy tool to make Virtual2Virtual (V2V) conversion in Windows platform. It converts most of the virtual hard disk formats to VHD or VHDX to support Hyper-V and Azure. We will use the same tool with a few PowerShell commands in this case.
a) Download Microsoft Virtual Machine Converter from the official site here and install it.
b) Once the installation completed, open the PowerShell as administrator and execute the following command to import relevant module.Import-Module “C:\Program Files\Microsoft Virtual Machine Converter\mvmcCmdlet.psd1”
c) Once the module imported successfully, execute the following command.PS C:\>ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath D:\VMNAME\VMOSNAME.vmdk -VhdType DynamicHardDisk -VhdFormat vhdx -destination D:\NEWVHD\
Note down the VMDK file location and output location of the VHDX file. You need to change according to your situation.
d) After the successful VHDX conversion, you can follow the same steps mentioned earlier to create a new VM and attach this converted disk.
I hope the above two methods are helpful to convert VMDK file to VHD or VHDX in Windows OS.