One of the more appreciated announcements to come out of last week’s Microsoft Build 2011 conference was that Hyper-V, the company’s hypervisor and virtual machine manager for high-end servers, would be coming to the Windows 8 client. (While we heard the words “every Windows 8 client,” we’ll reserve judgment on whether it gets included in the lower-end SKUs.)
The story was covered as “Virtualization Comes to Windows Client.” Well, anyone who uses Windows 7 on a regular basis knows it was already there, at least in some form: Microsoft had already integrated its Virtual PC system into Hyper-V since its earliest betas. But Virtual PC is not Hyper-V, for reasons any administrator can tell you: The virtual machine (VM) configuration files in Hyper-V are far more detailed than those of the consumer-grade Virtual PC (WVPC).
So for anyone who actually did make use of “XP Mode” – the ability to run a Windows XP application seamlessly in the Windows 7 environment, by virtue of a stealthy hypervisor – the transition to the network admin style of Hyper-V will be steep, stark, and possibly one-way.
We created a multi-boot system using the Windows 8 Developers’ Preview published last week by Microsoft. (At the moment, the XP boot option will not boot to XP, for reasons we’ve yet to pin down but have yet to blame squarely on the Preview. We do know Win8 overwrites existing boot sectors including on partitions other than the one from which it’s booting; on the other hand, it’s XP that may not be coping with changes to the system necessary to include Win8.) This way, we could test virtual hard disks (VHDs) created in Win7.
Windows 8 now includes a capability to mount a VHD as though it were a removable storage device. Simply double-clicking the VHD (or VHDX, the newer format) file in Windows Explorer brings up a window with the virtual drive’s root directory. This capability exists over and above Hyper-V; in fact, you can do this even if Hyper-V hasn’t been turned on.
You “turn on” Hyper-V the way you would turn on IIS, .NET 3.5, or other optional services that some users don’t actually need: You go into the Programs and Features Control Panel (where Internet Explorer 10 also resides), check the Hyper-V option, and restart your system. Win8 installs a series of updates that require two reboots, but once that’s done, a Hyper-V tile is added to the rightmost end of the new Start Screen.
Once Hyper-V is installed and running, and you attempt to import an existing virtual machine, you’ll soon discover that the only VMs it can import are those created by Hyper-V – or more accurately, those that follow Hyper-V’s XML-based description language. Win7’s hypervisor (which includes XP Mode) is based on the 32-bit WVPC platform. That’s a huge problem if you have any plans to boot a virtual Windows Server 2008 R2, which only comes in the 64-bit flavor – as all server OSes will do from now on, including Windows Server 8.
The VM description files created in Win7 (.VMCX) as well as in Virtual PC itself (.VMC) are incompatible with Hyper-V. As this screenshot from Explorer indicates, Windows 8 does not associate .VMCX files with anything (note their blank document icons).
Of course, the VM description files are not the same as the VHDs, which are compatible. Mounting a VHD is not the same as running a virtual machine from the VHD. So in Hyper-V for Win8, to boot from an operating system installed on a VHD, you have to create a new VM in Hyper-V. (You do not have to mount the VHD first manually in Explorer, however.)
Hyper-V (at least for now) does not lead its user by the hand. So when you create a new VM with the intention of pointing it to an existing VHD, you may discover there’s no way (yet) to network the VM with your physical system. In Virtual PC, you had an easy, consumer-level choice of attaching to your physical adapter or creating an internal virtual network.
Hyper-V expects the user to have already created a virtual switch – a software-based device that replicates the function of actual networking components in a real LAN. For me, creating this switch was easy. But I’ve been around the block a few times; for the consumer, virtual switch creation is a trip to the Twilight Zone… or, worse yet, to Best Buy.
Once the VM creation process is complete in Hyper-V, two things may be wrong right off the bat. If you installed Windows 7 or XP onto the VM using Virtual PC, then you probably installed certain VM-aware services onto that build to help speed it up and make it easier to use. Virtual machine integration, for example, captures the mouse pointer as you wave it past the window so that you don’t have to make the hypervisor capture the pointer manually and trap it there. These services are incompatible with Hyper-V as well, so once you boot your new VM for the first time, the operating system on that VM disables them.
That’s not all that happens: Hyper-V definitely makes changes to the startup of the VM, even before you decide to install Hyper-V-specific integration services. Those changes will render the operating system on that VHD unbootable in Virtual PC in Win7 – at least, not without first booting that system in Recovery mode and performing a restoration from a stored System Restore point.
If the Start Screen is an incomplete example of an effort to make Windows easier for a new class of users, Hyper-V in the Windows 8 Developers’ Preview is a complete and fully functional example of an administrator-class system that could make Windows a lot more confusing for an existing class of users. This too will need reworking before the operating system’s first public beta.