I use a MacBook Pro in the field daily and find myself needing to spin-up some home-brewed Windows and Linux virtual machines quickly. To accomplish this, I prefer to build and maintain several VM’s utilizing VMware Fusion Pro on my Mac. Granted; VMware Fusion is “I believe” an inferior product to it’s nearest competition, especially when it comes to connecting to and uploading VM’s directly to multiple VMware vSphere server environments. It does have a major shortfall I recently ran into: there is no ability to easily convert VMware VMDK files into Hyper-V VHD’s.
Typically, I find myself doing most of my conversions directly from physical hosts (P2V) or from Hyper-V host to VMware ESXi hosts. We do however have a few clients that use Hyper-V in their environments and luckily, Microsoft does have a utility for easily converting VMware virtual guest OS directly from your vSphere environment, or in my situation, from a VMware Fusion VMDK file to a Hyper-V VHD file.
- First you will need to download and install Microsoft Virtual Machine Converter 3.0 from Microsoft’s website.
- Next, open an elevated PowerShell prompt and run these command (changing the paths to match your source VMDK file and destination path of your new VHD file):
- Import-Module ‘C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1’
- ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “C:\Ubuntu-disk1.vmdk” -DestinationLiteralPath “C:\Ubuntu-disk1.vhd” -VhdType FixedHardDisk -VhdFormat Vhd
Then head over to your Hyper-V host and create a new virtual machine. When you get to the step “Connect Virtual Hard Disk” choose “Use an existing virtual hard disk” radio button and browse for the VHD file you just created.
Lastly fire-up your new Hyper-V virtual machine and hopefully all is good. I hope you found this information helpful and thank you for reading!
This article was created based on the following setup:
- Mac OS X 10.11.3/VMware Fusion 8.1 (source virtual host)
- Ubuntu Server 14.04 LTS 64-bit (source virtual machine)
- Windows 10 64-bit/PowerShell 5.0 (used to perform VMDK to VHD conversion)
- Windows Server 2012 R2 Hyper-V (destination virtual host)