John Howard - Senior Program Manager in the Hyper-V team at Microsoft

Senior Program Manager, Hyper-V team, Windows Core Operating System Division.

Are VHDs compatible between Hyper-V and Virtual Server and Virtual PC?

Are VHDs compatible between Hyper-V and Virtual Server and Virtual PC?

  • Comments 29
  • Likes

This question frequently comes up, but most often is not the question people mean to ask. As written, the answer to the question is yes – there is no change to the VHD format specification used between any of these virtualization solutions. The real question usually is:  “If I build a virtual machine on a VHD in one virtualization solution, will it be compatible with another virtualization solution”.  This blog post focuses on answering the revised question. As you’d expect, the answer isn’t that straightforward.

Let’s start by looking at the obvious cases where the answer is “No, they are not compatible”. Assume you build a virtual machine using Hyper-V, and it is 64-bit. Here, the answer is no as Virtual Server and Virtual PC do not support 64-bit virtual machines.

What about a 32-bit virtual machine built under Hyper-V? Generally the answer is again no. This is because most operating system will detect the presence of an IO-APIC in the virtual machine environment and install an appropriate HAL in the operating system image. Once that image is started on Virtual Server or Virtual PC where an IO-APIC is not present, the image will fail to boot. In theory it is possible to swap the HAL, but not in a Microsoft supported manner (except on Vista and Windows Server 2008 – that’s a post for another day). So the answer remains no. [Maybe an exception would be where an operating system is able to dynamically switch between IO-APIC and PIC modes (this is not the case in Windows Server 2003 or Windows Server 2008 or any OS I’m myself familiar with). I guess that some Linux flavours with appropriate boot switches may be OK, but I’m no expert in this area.]

Now let’s look at some “yes” scenarios. These are the ones where the virtual machine is built under Virtual PC or Virtual Server initially. If you take a VHD image and create a new VM in Hyper-V usng that VHD and simply boot it, yes, it will be fine. If you do not install the Integration Components and subsequently take the VHD back to Virtual PC or Virtual Server, yes, it will also boot fine.

Following on from the previous paragraph, if you install the Integration Components (and let’s stick to Windows Server 2003 for the example), then we swap the HAL to an APIC HAL as the first part of the installer. At this point, the VHD will no longer boot under Virtual PC and Virtual Server.

Hopefully that helps!

  • Thank Yuhong. Appreciate the clarification.



  • Hyper-V HW & SW requirement: Hyper-V RTM

  • 下面的内容,是由微软全球技术中心工程师收集和整理的虚拟化技术资料集锦。基本上涵盖了学习和应用基于Hyper-V架构的虚拟化平台所需要掌握的知识和资料。非常的有价值。 1 .Hyper-V的安装部署 在Windows

  • Convertire una macchina Hyper-V in VMware

  • "In theory it is possible to swap the HAL, but not in a Microsoft supported manner (except on Vista and Windows Server 2008 – that’s a post for another day)."

    You basically go to Device Manager and use Update Driver and change the HAL to "ACPI PC" or "Standard PC".

  • What if I have a server running Server 2003 32 bit, and I use Virtual Machine Manager 2007 (because VMM2008 doesn't run on 32bit) to convert the physical server to a virtual server, then install Server 2008 on another server and run the Server 2003 vhd file as a VM in Hyper-V.  Will that work?

  • Anthony - I'm not on the VMM team, but (IIRC), you can use VMM2007 to P2V into a virtual machine under Virtual Server.

    You can convert from VS to Hyper-V using the steps documented at



  • John has posted a good blog entry describing how to make vhd image work between VPC/Virtual server and

  • Does anyone know how to go from Xen server to Hyper-V? looking for a solution that will not cost alot.


  • Would it be possible to switch from Hyper-V to Virtual PC by booting off the OS installation CD and doing some kind of repair?

  • Gareth - not that I'm aware of.



  • If you copy the hal and ntoskrnl from c:\windows\servicepackfiles\i386 into c:\windows\system32 (back up the originals first) then you should be able to move from hyper-v to virtual server.

    (This is theoretical, I haven't done it in this scenario but when converting p2v I have had to do this so that the generic hal is in place that will allow it to boot so I'm pretty confident it will work. If it doesn't and you get a non-booting machine, attach the vhd to a working virtual machine as an extra disk and restore the backed up hal and ntoskrnl).

  • Lee - as much as this *may* work, please note that it would not be supported.



  • Great Article!

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment