How to convert VMWare image to Hyper-V images?
Hi,
Now that Hyper-V seems to be working for us, we have several vmware image that I would like to convert over. Is this possible?
Regards,
Peter
Answers
Here's a small how-to based on my experiences:
1) Uninstall VM tools from your VM
2) Shutdown the VM
If your VMs are based on SCSI drives (like mine were – because VMware recommends SCSI) and the operating systems are Windows XP, 2003 or earlier then you have to add the IDE driver to your VM before you shut it down in VMware.
Otherwise you will end up with a converted VM that starts up in Hyper-V with a blue screen of death (BSOD) and 0x0000007B – “Inaccessible Boot Device” error. This is due to the fact that your converted VM will have no Primary IDE Channel and Hyper-V will presume that your converted disk is IDE type and located on the Primary IDE Channel.
Doing a Windows Repair Install can fix the 0x7B Inaccessible Boot Device error – but it’s both time consuming and the result might not be good. (Believe me – I had to redo a migration of a SharePoint installation because a Windows Repair Install messed it up. Luckily I then came up with the solution described below instead).
Please note that adding a temporary IDE disk to your VM is not necessary with VMs running Windows Vista or Windows 2008 – they seem to detect the Primary IDE Channel during initial boot phase.
3) Add a new IDE disk drive to your VM: (any size will do)
Make sure that you select “Adapter: IDE 0 Device: 0” under “Virtual Device Node” while creating the new disk (otherwise you might end up with yet another SCSI disk)
4) Boot up your virtual machine with both drives connected and check that it detects your new IDE drive (along with a primary IDE channel and a disk device driver). You should be able to see the new drive as "not initialized" in Disk Management.
5) Power off your virtual machine and remove the newly created IDE disk from your VM (you can delete it from disk as well). Do not power on your VMware Machine again!
6) Now convert your VMDK file to VHD format using the newest Vmdk2Vhd utility (currently version 1.0.13) that can be downloaded from http://vmtoolkit.com.
7) You can now uninstall VMware Server and install Hyper-V + current Windows Updates on your host server
8) Create a new Virtual Machine in Hyper-V. Make sure you select “Use an existing virtual hard disk” and select the VHD file that you just created.
9) Power it on, Install “Integration Services” and reboot when prompted:
10) Assign the original IP address(es) to your new network card(s)
11) Check device manager
12) Do another reboot
13) Check that all your applications and services are running
14) Done!
Note: if you have Win2008 VM’s then it’s not necessary to add a temporary IDE disk during migration but you might want to copy the relevant KB949219 (http://support.microsoft.com/kb/949219) update package to your VM before converting it. Otherwise it will start up with three warnings in the Device Manager for “Microsoft VMBus Video Device”, “Microsoft VMBus HID Miniport” and “Microsoft VMBus Network Adapter” - hence you will have no network access. I worked around it by “burning” the KB949219 updates to an ISO file using “ISO recorder“ (http://isorecorder.alexfeinman.com) and mounting the ISO file to my VM.
Microsoft's System Center Virtual Machine Manager provides the ability to convert VMware virtual machines into the VHD format. Yes, SCVMM only works with Virtual Server 2005 R2 SP1 today, but the VHD format is common between Virtual Server and Hyper-V. After using SCVMM to convert, you can load the virtual machine into Virtual Server and remove the VM additions. Then you can move the VHD file over to Hyper-V. If the virtual machine is either Windows Server 2008 or Windows Server 2003 SP2, you can add the integration components under Hyper-V.
All Replies
- Vmdk2Vhd is a simple utility to convert virtual hard drive images from VMWare's VMDK format into the Microsoft's VHD format. This is a sector by sector copy operation from one format to the other and the source file remains unaltered.
Microsoft's System Center Virtual Machine Manager provides the ability to convert VMware virtual machines into the VHD format. Yes, SCVMM only works with Virtual Server 2005 R2 SP1 today, but the VHD format is common between Virtual Server and Hyper-V. After using SCVMM to convert, you can load the virtual machine into Virtual Server and remove the VM additions. Then you can move the VHD file over to Hyper-V. If the virtual machine is either Windows Server 2008 or Windows Server 2003 SP2, you can add the integration components under Hyper-V.
- Tim,
You can also add the IC's to Suse Enterprise 10 with the Hyper-V Beta Linux IC's available from http://connect.microsoft.com
Cheers,
Stephen Edgar FYI - Once you have converted the VMWare files into .VHD format, here is a simple How-To for importing into Hyper-V
http://www.groovypost.com/howto/microsoft/windows-server/migrate-microsoft-virtual-server-2005-r2-vm-to-windows-server-2008-hyper-v/Here's a small how-to based on my experiences:
1) Uninstall VM tools from your VM
2) Shutdown the VM
If your VMs are based on SCSI drives (like mine were – because VMware recommends SCSI) and the operating systems are Windows XP, 2003 or earlier then you have to add the IDE driver to your VM before you shut it down in VMware.
Otherwise you will end up with a converted VM that starts up in Hyper-V with a blue screen of death (BSOD) and 0x0000007B – “Inaccessible Boot Device” error. This is due to the fact that your converted VM will have no Primary IDE Channel and Hyper-V will presume that your converted disk is IDE type and located on the Primary IDE Channel.
Doing a Windows Repair Install can fix the 0x7B Inaccessible Boot Device error – but it’s both time consuming and the result might not be good. (Believe me – I had to redo a migration of a SharePoint installation because a Windows Repair Install messed it up. Luckily I then came up with the solution described below instead).
Please note that adding a temporary IDE disk to your VM is not necessary with VMs running Windows Vista or Windows 2008 – they seem to detect the Primary IDE Channel during initial boot phase.
3) Add a new IDE disk drive to your VM: (any size will do)
Make sure that you select “Adapter: IDE 0 Device: 0” under “Virtual Device Node” while creating the new disk (otherwise you might end up with yet another SCSI disk)
4) Boot up your virtual machine with both drives connected and check that it detects your new IDE drive (along with a primary IDE channel and a disk device driver). You should be able to see the new drive as "not initialized" in Disk Management.
5) Power off your virtual machine and remove the newly created IDE disk from your VM (you can delete it from disk as well). Do not power on your VMware Machine again!
6) Now convert your VMDK file to VHD format using the newest Vmdk2Vhd utility (currently version 1.0.13) that can be downloaded from http://vmtoolkit.com.
7) You can now uninstall VMware Server and install Hyper-V + current Windows Updates on your host server
8) Create a new Virtual Machine in Hyper-V. Make sure you select “Use an existing virtual hard disk” and select the VHD file that you just created.
9) Power it on, Install “Integration Services” and reboot when prompted:
10) Assign the original IP address(es) to your new network card(s)
11) Check device manager
12) Do another reboot
13) Check that all your applications and services are running
14) Done!
Note: if you have Win2008 VM’s then it’s not necessary to add a temporary IDE disk during migration but you might want to copy the relevant KB949219 (http://support.microsoft.com/kb/949219) update package to your VM before converting it. Otherwise it will start up with three warnings in the Device Manager for “Microsoft VMBus Video Device”, “Microsoft VMBus HID Miniport” and “Microsoft VMBus Network Adapter” - hence you will have no network access. I worked around it by “burning” the KB949219 updates to an ISO file using “ISO recorder“ (http://isorecorder.alexfeinman.com) and mounting the ISO file to my VM.
Hi!
I'm going to ask a dummy question...
Why can't the Virtuak machine in Hyper-V use SCSI disk and the problem is solved?
Is the answear as simple that Vmdk2Vhd utility simply make an "IDE" disk?
-Alexander
VMware can boot from SCSI and Hyper-V can only boot from IDE. Hyper-V supports SCSI disks as extra disks. If you have a VMware vm with multiple SCSI disks, only the boot disk has to be converted to IDE. The rest can be left as SCSI.
scsi disk also perform a little better onder hyper-v because of the context switches in the vmwp.exe process (wich runs in user mode) when using an ide controller
best advice: boot from ide (the only possible way) and the rest on a scsi controller with scsi disks
Ahhhh, this was great news and very helpful.
So the VMware SCSI-disk which is only data disk/Extra disks I can use as-is in Hyper-V. Mayby change name from xxx.vmdk to xxx.vhd?
If so, this is very time-saving since I have some TB with disk.
-Alexander
- You can't simply rename VMware SCSI disks. VMware vmdk and Microsoft vhd are different formats. You'll still have to convert from vmdk to vhd.
I see.
ALL disk must be converted, and the boot disk must be set at IDE in the VM i Hyper-V, the other disk can be set at SCSI.
This was very helpful and saved me for a lot of time googling around.
-Alexander
I had some test Virtual Machines on our ESXi server that I wanted to test on Hyper-V, (Version 3 doesnt' give me the correct driver for clustering 2008 Servers). I exported them as a virtual Appliance, and then use the VmWare Standalone Converter to change it to a Workstation 6.5 VM, during that process I had the option to change the Hard Disk to IDE. I then used the vmdk to vhd converted and then opened the Virtual Machine in HyperV - R2...
- The only thing I would add to that is to remove the VM Tools before you start. See the checklist above by Steen Kirkby.
Bill - I have been trying to get this going for a while without success. i followed your advice but when I start the VHD in virtual PC (im on the move at the moment and can't use my hyper-v server) i get the following message;
"Reboot and select a proper Boot device
or insert boot media in selected boot device"
any ideas? or must i use hyper v? - Thanks Steen for your step by step process. Even we have both VMware and Microsoft Hyper V platforms setup. I want to convert a VMware .vmdk file to vhd file....................... I tried with the Vmdk2Vhd utility, but it is throwing me a error "Invalid Vmdk file, please select another"..
I am using VMWare ESX 3.5, please help
- I recently converted some vmdk files to vhd using this tool:
StarWind (V2V) Converter
http://www.starwindsoftware.com/converter
It's free and it worked well. - I've created an OS X Leopard VM in VMware and I am wondering if the processes in this thread will work to convert this VM to be usable in Hyper-V? I was not able to find a way to create an OS X VM directly with Hyper-V? Has anyone tried what I am proposing to do and were you successfull at it?
- Export the VMware VM to and OVF appliance
then use Citrix Kensho to import the OVF Appliance to a Hyper-V host.
Check the OS Fix-up option to handle the SCSI to IDE device issue.
Brian Ehlert (hopefully you have found this useful)
I was finally successful in converting my Windows 2000 scsi boot drive GSX 1.0 VmWare virtual machine to Microsoft Hyper-v by doing the following: (I would of never figured this out without this thread, so thanks to all previous posters)
Remove or merge all snapshots (MY Gsx servers lock up if you mess with them before the snapshot has merged completely)
uninstall vmware tools
shut the VM down
goto settings add an ide disk that is at least 1gb bigger than the scsi disk you need to convert to ide
download and mount in the cd drive the Easus disk copy iso from http://www.easeus.com/disk-copy/
start the vm, click in the vms window once, hit escape once. This might take a few time but you need to get to the boot menu - then from there boot from the cd.
copy from scsi with ntfs to ide raw - double check that you are writing to the scsi disk and let er rip.
Next use one of the tools listed above to convert the vmware ide drive to a M$ VHD. Next copy it to your hyper-v host, then from the hyper-v console create a new machine, use existing hd etc.. Till you can start the vm.
Let it boot up the first time with the nic disconnected. Log into the machine, cancel all hardware driver installation request. Then insert the integration disk - Installation should start automatically, if not you might have to use keyboard control to tab to the start menu, nav to run, type d: hit enter, carefully nav to the setup.exe in the i386 or 64 directories (depending on your machine type). Run setup.exe - let everything install. Shutdown, connect nic in settings, boot it up - restore your nic ips if they are static (you wrote that down right?), run updates, and wipe the sweat off your brow - then go get a cup of coffee or an ice cold beer depending on what time of day it is.In my case this w2k virtual machine had two more drives that were scsi. SCSI is supported with 2003 Microsoft servers but not w2k. So, when I went into settings and mounted these scsi drives to ide controllers. Fired up the server and all was well.
In my experiences I have found that it is important to be sure to remove the scsi adapter from this machine and never have a scsi adapter on any virtual machine that isnt attached to a device. If you do have an orphan scsi adapter, your hyper-v vm management services will start crashing. It might even reboot the host.
This error will show up in the log. "Faulting application vmms.exe, version 6.0.6001.18221"
This was addressed by a patch but my host server has all current patches to Feb 2010 and this still happens.
No warranties express or implied - and your milage may vary =)If you are doing this with NT 4.0, you need to take a couple of extra steps. I have added them below.
4a) for NT 4.0 - go into Control Panel - Devices, and find ATAPI - set the startup type to BOOT (this way NT loads the IDE driver when it boots up, so you don't get a STOP 7B error)
4b) for NT 4.0 - Uninstall all VMWare related stuff (converter and tools, for example) before conversion
9a) for NT 4.0 - you can't install Integration Services. You can download the Intel 21143 NDIS drivers from the Intel website (http://www.intel.com/design/network/drivers/index.htm#21143). Unpack the drivers, and create an ISO of them. Mount this ISO as a CD in your NT 4.0 VM. Then add an Intel 21140 Network Adapter to your NT 4.0 VM, and remove all other adapters. Assign your IP addresses and networking should work fine.
Hope this helps - I hate turning NT 4.0 machines into Virtual Machines, but sometimes there is no way around it.
- Anyhow, vmdk2vhd failed for me on Windows 7 host. Finally here is the tool did the job perfectly to convert VMware to Virtual PC ( VMDK to VHD) which should work in hyper-v too. Its available here,