Windows Server TechCenter > Windows Server Forums > Hyper-V > VHD file format - differences between Virtual PC, Virtual Server and Hyper-V?
Ask a questionAsk a question
 

AnswerVHD file format - differences between Virtual PC, Virtual Server and Hyper-V?

  • Saturday, September 19, 2009 7:48 PMITpendium Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I hope this is the right place to ask this question... Can someone tell me what are differences between VHD files created (used) in Virtual PC, Virtual Server and Hyper-V? I'm looking for something that would explain more in depth info that I've found at http://www.eggheadcafe.com/conversation.aspx?messageid=29219274&threadid=29219270

    Can I mount image created in Virtual PC in Windows XP by use of vhdmount command? Can I mount Virtual Server images in Windows 7?

    Can I use VHD created in Virtual PC, Virtual Server or Hyper-V on any of those other virtualization systems? Tnx.

    ... working with computers and people ... writing a little blog @ http://itpendium.wordpress.com just for fun ...

Answers

  • Saturday, September 19, 2009 8:15 PMJohn Paul CookMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    While the link you provided is basically correct, it is technically inaccurate if we dive deep into the technical details. It has what I call PowerPoint only level of accuracy. The vhd file formats are not the true issue, not really (although, for example, Virtual PC 2004 produced a slightly different vhd file format). The real issue is what is installed inside the vhd.

    A vhd file doesn't have to contain an operating system. It could just contain data or even be empty free space. Such a vhd can freely be moved among the various Microosft virtualization engines.

    The incompatibilities are from what is installed into a vhd by the virtualization engine. The single most important difference is the HAL installed by the virtualization engine. Virtual PC and Virtual Server install a different HAL. The drivers are different. Hyper-V Integration Services doesn't even provide a sound driver, but you can get sound by using RDP. See my blog post: http://sqlblog.com/blogs/john_paul_cook/archive/2009/09/14/enabling-sound-on-hyper-v.aspx

    Reading my blog post or viewing my Microsoft web cast on migrating vhds between platforms may be helpful: http://sqlblog.com/blogs/john_paul_cook/archive/2009/08/29/migrating-a-virtual-machine-from-virtual-pc-to-hyper-v-and-back.aspx

    I've mounted all types of vhds in Windows 7, which I covered to some degree in this blog post: http://sqlblog.com/blogs/john_paul_cook/archive/2009/08/29/mounting-a-vhd-in-windows-7-and-windows-server-2008-r2.aspx. Mounting a vhd doesn't involve booting a virtual machine, so you don't run into HAL or driver problems. It just works.

    • Marked As Answer byITpendium Sunday, September 20, 2009 2:38 PM
    •  
  • Sunday, September 20, 2009 4:03 PMJohn Paul CookMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Yes, a data vhd can be used anywhere. I don't have a VPC 2004 vhd, so I'm not certain about it. Virtual PC 2007, Virtual Server 2005, Hyper-V and Hyper-V R2 data vhds are transportable.

    If an OS is installed, it may boot. Migrating to Hyper-V, I expect a Windows OS to boot, although you'll need to upgrade the HAL as shown in my blog post on migration. Migrating from Hyper-V, I do not expect a Windows OS to boot because the HAL must be replaced before booting. This can be done by mounting the vhd and copying in the correct HAL file as I covered in the blog posts.

    Saved state is not portable from one virtualization engine to another or from one processor manufacturer to another.

    Undo if for Virtual PC and Virtual Server. Hyper-V does have undo. Instead, it has snapshots. The two different approachnes can't be migrated from one platform to another.

    So, whether migrating to or from Hyper-V, get rid of saved states, undo, and snapshots. Keep it simple.
    • Marked As Answer byITpendium Tuesday, September 22, 2009 7:20 PM
    •  
  • Wednesday, September 23, 2009 6:47 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi,

     

    As John said, a data VHD can be used anywhere. I don’t have any version of Virtual PC on my computer, however, I copied a VHD file of VPC 2007 from my colleague and it worked fine in my Hyper-V VMs as a data VHD.

     

    I remember some kind of warning when I was doing upgrade from 2004 to 2007.

     

    >> Do you want to upgrade from Virtual PC 2004 to Virtual PC 2007? If so, as we mainly focus on the Hyper-V question about Windows Server system and here is not the best support resource for Virtual PC, it is recommend you to get further support in the corresponding community so that you can get the most qualified pool of respondents. Thanks for your understanding.

     

    For your convenience, I have list the related link as followed.

     

    Discussions in Virtual PC

     

    http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.virtualpc&cat=en_US_4596fe15-89c0-4fa3-9c96-22b2f0d124ca&lang=en&cr=US

     

    By the way, I can’t open the link you provided.

     

    Best Regards,

    Vincent Hu

     

    • Marked As Answer byITpendium Wednesday, September 23, 2009 6:57 AM
    •  
  • Wednesday, September 23, 2009 7:08 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi,

     

    Yes, generally speaking, if you want to upgrade the virtualization platform, we strongly recommend that you shut down all VMs, delete the undo (snapshot we use in Hyper-V) and etc.

     

    Hyper-V is a wonderful virtualization platform than Virtual PC and Virtual Server, it’s based on bare-metal architecture, the VMs can communicate with the hardware directly, so the performance will be much faster(Virtual PC and Virtual Server is based on OS).

     

    Welcome to virtualization world of Hyper-V!

     

     

    Best Regards,

    Vincent Hu

     

    • Marked As Answer byITpendium Sunday, October 04, 2009 3:52 PM
    •  
  • Monday, October 05, 2009 2:07 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi,

     

    Can I make dual boot of Win 7 (32-bit) and Win 2008 R2?

     

    >> Yes, you can do so, however, it’s not recommend that you have a dual boot if you are in a production environment.

     

     

    Best Regards,

    Vincent Hu

     

    • Marked As Answer byITpendium Monday, October 05, 2009 2:42 PM
    •  

All Replies

  • Saturday, September 19, 2009 8:15 PMJohn Paul CookMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    While the link you provided is basically correct, it is technically inaccurate if we dive deep into the technical details. It has what I call PowerPoint only level of accuracy. The vhd file formats are not the true issue, not really (although, for example, Virtual PC 2004 produced a slightly different vhd file format). The real issue is what is installed inside the vhd.

    A vhd file doesn't have to contain an operating system. It could just contain data or even be empty free space. Such a vhd can freely be moved among the various Microosft virtualization engines.

    The incompatibilities are from what is installed into a vhd by the virtualization engine. The single most important difference is the HAL installed by the virtualization engine. Virtual PC and Virtual Server install a different HAL. The drivers are different. Hyper-V Integration Services doesn't even provide a sound driver, but you can get sound by using RDP. See my blog post: http://sqlblog.com/blogs/john_paul_cook/archive/2009/09/14/enabling-sound-on-hyper-v.aspx

    Reading my blog post or viewing my Microsoft web cast on migrating vhds between platforms may be helpful: http://sqlblog.com/blogs/john_paul_cook/archive/2009/08/29/migrating-a-virtual-machine-from-virtual-pc-to-hyper-v-and-back.aspx

    I've mounted all types of vhds in Windows 7, which I covered to some degree in this blog post: http://sqlblog.com/blogs/john_paul_cook/archive/2009/08/29/mounting-a-vhd-in-windows-7-and-windows-server-2008-r2.aspx. Mounting a vhd doesn't involve booting a virtual machine, so you don't run into HAL or driver problems. It just works.

    • Marked As Answer byITpendium Sunday, September 20, 2009 2:38 PM
    •  
  • Sunday, September 20, 2009 2:47 PMITpendium Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    While the link you provided is basically correct, it is technically inaccurate if we dive deep into the technical details. It has what I call PowerPoint only level of accuracy. The vhd file formats are not the true issue, not really (although, for example, Virtual PC 2004 produced a slightly different vhd file format). The real issue is what is installed inside the vhd.

    A vhd file doesn't have to contain an operating system. It could just contain data or even be empty free space. Such a vhd can freely be moved among the various Microosft virtualization engines.

    The incompatibilities are from what is installed into a vhd by the virtualization engine. The single most important difference is the HAL installed by the virtualization engine. Virtual PC and Virtual Server install a different HAL. The drivers are different. Hyper-V Integration Services doesn't even provide a sound driver, but you can get sound by using RDP. See my blog post: http://sqlblog.com/blogs/john_paul_cook/archive/2009/09/14/enabling-sound-on-hyper-v.aspx

    Reading my blog post or viewing my Microsoft web cast on migrating vhds between platforms may be helpful: http://sqlblog.com/blogs/john_paul_cook/archive/2009/08/29/migrating-a-virtual-machine-from-virtual-pc-to-hyper-v-and-back.aspx

    I've mounted all types of vhds in Windows 7, which I covered to some degree in this blog post: http://sqlblog.com/blogs/john_paul_cook/archive/2009/08/29/mounting-a-vhd-in-windows-7-and-windows-server-2008-r2.aspx . Mounting a vhd doesn't involve booting a virtual machine, so you don't run into HAL or driver problems. It just works.

    Tnx for explanation.  If I got it correct: if i have VHD with data I can use it anywhere, regardless of virtualization engine. If OS is installed I can use it (boot it) only on specific virtualaization engine.

    I have just one more question, what if drive has enabled undo drive or if drive has a saved state? Does that make any difference? Can I mount such drives or do I first have to boot machine and make clean shutdown?



    ... working with computers and people ... writing a little blog @ http://itpendium.wordpress.com just for fun ...
  • Sunday, September 20, 2009 4:03 PMJohn Paul CookMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Yes, a data vhd can be used anywhere. I don't have a VPC 2004 vhd, so I'm not certain about it. Virtual PC 2007, Virtual Server 2005, Hyper-V and Hyper-V R2 data vhds are transportable.

    If an OS is installed, it may boot. Migrating to Hyper-V, I expect a Windows OS to boot, although you'll need to upgrade the HAL as shown in my blog post on migration. Migrating from Hyper-V, I do not expect a Windows OS to boot because the HAL must be replaced before booting. This can be done by mounting the vhd and copying in the correct HAL file as I covered in the blog posts.

    Saved state is not portable from one virtualization engine to another or from one processor manufacturer to another.

    Undo if for Virtual PC and Virtual Server. Hyper-V does have undo. Instead, it has snapshots. The two different approachnes can't be migrated from one platform to another.

    So, whether migrating to or from Hyper-V, get rid of saved states, undo, and snapshots. Keep it simple.
    • Marked As Answer byITpendium Tuesday, September 22, 2009 7:20 PM
    •  
  • Tuesday, September 22, 2009 7:23 PMITpendium Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Yes, a data vhd can be used anywhere. I don't have a VPC 2004 vhd, so I'm not certain about it. Virtual PC 2007, Virtual Server 2005, Hyper-V and Hyper-V R2 data vhds are transportable.
    I remember some kind of warning when I was doing upgrade form 2004 to 2007. Maybe this one about saved state http://download.microsoft.com/download/4/4/c/44ccd131-67fb-4224-a96e-193be1765b43/relnotes.htm

    Tnx for advice. :)


    ... working with computers and people ... writing a little blog @ http://itpendium.wordpress.com just for fun ...
  • Wednesday, September 23, 2009 6:47 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi,

     

    As John said, a data VHD can be used anywhere. I don’t have any version of Virtual PC on my computer, however, I copied a VHD file of VPC 2007 from my colleague and it worked fine in my Hyper-V VMs as a data VHD.

     

    I remember some kind of warning when I was doing upgrade from 2004 to 2007.

     

    >> Do you want to upgrade from Virtual PC 2004 to Virtual PC 2007? If so, as we mainly focus on the Hyper-V question about Windows Server system and here is not the best support resource for Virtual PC, it is recommend you to get further support in the corresponding community so that you can get the most qualified pool of respondents. Thanks for your understanding.

     

    For your convenience, I have list the related link as followed.

     

    Discussions in Virtual PC

     

    http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.virtualpc&cat=en_US_4596fe15-89c0-4fa3-9c96-22b2f0d124ca&lang=en&cr=US

     

    By the way, I can’t open the link you provided.

     

    Best Regards,

    Vincent Hu

     

    • Marked As Answer byITpendium Wednesday, September 23, 2009 6:57 AM
    •  
  • Wednesday, September 23, 2009 7:00 AMITpendium Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    On a link that I've provided it says "Important You must shut down all guest operating systems or turn off all virtual machines before performing the installation, including any virtual machines that are currently in a saved state. This is important because saved states are not compatible between Virtual PC 2007 and all previous versions of Virtual PC 2004."

    At the moment I'm trying to learn as much as possible about virtualization, and  it seems to me that Hyper-V is the way that Microsoft will go. I'll have a look at Virtual PC news group.
    ... working with computers and people ... writing a little blog @ http://itpendium.wordpress.com just for fun ...
  • Wednesday, September 23, 2009 7:08 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi,

     

    Yes, generally speaking, if you want to upgrade the virtualization platform, we strongly recommend that you shut down all VMs, delete the undo (snapshot we use in Hyper-V) and etc.

     

    Hyper-V is a wonderful virtualization platform than Virtual PC and Virtual Server, it’s based on bare-metal architecture, the VMs can communicate with the hardware directly, so the performance will be much faster(Virtual PC and Virtual Server is based on OS).

     

    Welcome to virtualization world of Hyper-V!

     

     

    Best Regards,

    Vincent Hu

     

    • Marked As Answer byITpendium Sunday, October 04, 2009 3:52 PM
    •  
  • Sunday, October 04, 2009 3:56 PMITpendium Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Welcome to virtualization world of Hyper-V!

     


    To run Hyper-V I need Win Srv 2008 R2, right? Can I make dual boot of Win 7 (32-bit) and Win 2008 R2? I'd install both OS on two seperate VHD's and use Win 7 native boot for VHD.

    ... working with computers and people ... writing a little blog @ http://itpendium.wordpress.com just for fun ...
  • Monday, October 05, 2009 2:07 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi,

     

    Can I make dual boot of Win 7 (32-bit) and Win 2008 R2?

     

    >> Yes, you can do so, however, it’s not recommend that you have a dual boot if you are in a production environment.

     

     

    Best Regards,

    Vincent Hu

     

    • Marked As Answer byITpendium Monday, October 05, 2009 2:42 PM
    •  
  • Monday, October 05, 2009 2:42 PMITpendium Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

     

    Can I make dual boot of Win 7 (32-bit) and Win 2008 R2?

     

    >> Yes, you can do so, however, it’s not recommend that you have a dual boot if you are in a production environment.

     

     

    Best Regards,

    Vincent Hu

     


    I just want to test R2 and it's new features and this seems to me like the best way to go (so that I don't have to create new partition. I must admit that I've never installed 64 bit OS before ;)

    ... working with computers and people ... writing a little blog @ http://itpendium.wordpress.com just for fun ...
  • Tuesday, October 06, 2009 3:11 AMVincent HuMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi,

     

    Please take your time.

     

     

    Best Regards,

    Vincent Hu