Monday, January 10, 2011

VMWare and Hyper-V

For a client engagement, I was provided VMWare images.  I don’t have VMWare, but have a server running Windows Server 2008 R2 with Hyper-V.  So I needed a conversion from the VMWare image to a Hyper-V image.

As is often the case, I figured I must not be the first person to want to do this, so there’s probably info on the web about it.   Back when I worked as a dev on Office, we had a strategy of being a universal receiver – no matter what format you had, you could open it in Office.  This was in the days when WordPerfect 4.1 and Lotus were the market leaders, so it makes sense to make it super easy for people to move from what they have to your format.  I figured the same must be true for Hyper-V, the kind of underdog in the VM space.
Sure enough, I found a good blog post from John Robbins describing how he did this.  John is doing a more complex migration than I need –he’s moving his whole environment, including an Active Directory domain controller from VMWare to Hyper-V.  I just have a couple of virtual disk images I need to be able to run under Hyper-V.  But John’s post links to just what I needed - a tool which does a sector-by-sector conversion from the VMWare .VMDK format for virtual hard disks to Hyper-V’s VHD format.

But that gives me a virtual hard drive with the image – it doesn’t give me a virtual machine.  Here are the steps to convert that from the VMWare virtual machine information provided:

  1. Download the VMDK to VHD Converter from VMToolkit.
  2. Use it to convert the VMWare VMDK (virtual disk image) to a Hyper-V VDK (virtual disk image).  This creates a new file that is a sector-by-sector copy of the original virtual hard disk.
  3. Start Hyper-V Manager and click on your server name in the tree control on the left.
  4. Click New / Virtual Machine… and name it and configure memory/networking.
  5. When you get to step 4 (Connect Virtual Hard Disk), click the second option “Use an existing virtual hard disk” and point it at the VHD you created from the VMDK.

Read more: Mike Kelly's Blog