Now that Windows Vista has been released to manufacturing and is slowly making its way onto thousands of desktops
worldwide, people want to get hands-on experience with the operating system (OS). And, if possible, many want to do that in a highly controlled way -- by running Vista in a virtual machine (VM).
Like any operating system running in a VM, Vista comes with its own collection of pitfalls and "gotchas" that need to be kept in mind. In this article I'll outline several of the most important ones.
There are a number of reasons to run Vista in a VM. For example, if the only test machines available already run a version of Windows and dual-booting isn't an option, there can be problems if you install Vista on a machine that's currently running Windows XP. This alters XP's boot loader and replaces it with Vista's boot loader, something which can't be easily undone. The old NTLDR executable is replaced with the Windows Boot Manager (BOOTMGR.EXE), designed to work with newer EFI (Extensible Firmware Interface)-based computers as well as the older BIOS-based systems. In short, installing Vista on an existing XP system, even as a dual-boot, is hard to undo unless you use third-party tools, perform a Recovery Console repair or restore from a full-system backup. A virtualized copy of Vista avoids this problem entirely.
No matter which emulation system you use, there are some general guidelines that you'll need to follow to run Vista properly.
- The minimum amount of disk space that Vista can run comfortably in is 15GB, so be sure to have at least that much disk space free on the host to create a virtual disk. The actual amount of disk space used is less than that, but Vista needs scratch space to unpack files and copy in the system image that's used for setup.
- It's no secret that Vista requires more memory than XP, but in at least one aspect the word requires is very much written in stone. Vista will not install on a system with less than 512MB of RAM. If you try to do so, you'll get an error about this from the installer. To that end, make sure the host PC has at least 512MB of RAM to spare for each instance of Vista.
On the other hand, Vista will run with less than 512MB. It's possible to install Vista in a 512MB VM, then drop the memory for the VM to 384MB or even 256MB after Vista is already running I've tried this trick with mixed results -- it runs, but not well -- so 512MB or better is required and not an option.
- A virtualized copy of Vista will not run Aero Glass, not now and probably not for some time to come. See "Broken Glass" below for more details.
Vista in Virtual PC
Installing Vista in a Virtual PC virtual machine has been a rocky road for a lot of people. Even the release candidates of Vista ran very slowly in Virtual PC 2004, no matter what the capacity of the host hardware or how much memory was devoted to Vista.
However, the latest version of Virtual PC -- Virtual PC 2007, now available as a public beta -- runs Vista far better than earlier editions of the program. There are a few reasons for this:
- VPC2007 comes with out-of-the-box virtual machine options for Vista. If you select Vista as the operating system of choice for a newly-created VM, it automatically sets the minimum amount of memory for the VM at 512MB (which it should be).
- The Virtual Machine Additions in VPC2007 (described in the disc image's volume label version 13.724) have been updated to work with Vista. People discovered that Virtual Server 2005 R2's VMA image made Vista run all the better as well, but since the release of VPC2007 as a public-beta product it's just easier to use VPC2007's beta instead of copying the VMA image out of VS2005 R2.
To that end, grab the Virtual PC 2007 beta and use that for Vista whenever possible. Existing VPC2004 machines and virtual hard disks run more or less as-is in 2007, so there shouldn't be problems with backwards compatibility.
Vista in VMware
Supporting Vista in VMware is a little trickier, since VMware isn't a Microsoft product. There are some curious interactions between it and Vista that you'll need to know about going in. Here are some examples:
- As with Virtual PC, be mindful of which version of VMware you have. VMware Workstation does in fact support Vista as of version 5.0, although you'll want to obtain the most recent version (5.5.3) to get the best possible results. "Experimental enhanced support for Windows Vista" is available in 5.5.3, and the 6.0 beta of VMware includes support for 32- and 64-bit Vista as both guest and host operating systems.
- Install VMware Tools and add any other emulated hardware before activating Windows Vista. You've got 14 days to set up your hardware and tweak things before Vista must be activated (the MSDN editions of Vista give you 30 days), so take your time.
- Some issues exist with the Vista RTM installer and VMware 5.5 and lower. If you mount an .ISO image of the Vista disc for a virtual machine, the installer boots, but then allegedly can't find drivers for the CD-ROM.
To work around this, mount two CD-ROMs in the virtual machine, the first pointing at a real CD-ROM drive and the other pointing at the .ISO. Set both of them to connect at power on, and do not use the legacy-emulation option for the "real" drive. Boot with no disc in the physical drive (which should cause the machine to boot the .ISO).
When Vista's installer throws an error about not having a driver, switch out of the VM and set CD-ROM 1 to point at the .ISO instead of the physical drive, then switch back in and continue the install. Apparently Vista's installer (and Vista itself) needs to "see" a physical CD-ROM drive before it'll install the driver for it properly.
Another workaround -- and probably a more permanent and elegant one until this issue is fixed -- is to use a program like Daemon Tools to mount the .ISO as a CD-ROM drive in the host computer, then point the virtual machine to that.
VMware's full documentation on the way VMware interacts with Vista as a guest OS contains details about a great many other issues, such as possible problems with the included network adapter driver depending on your system configuration.
One major drawback to running Vista in both Virtual PC and VMware is the lack of support for Aero Glass, the visual effects additions for Vista's GUI. In both cases, the video card that's emulated by both Virtual PC and VMware doesn't have anywhere near the horsepower to support Aero. To do this would require a much greater degree of interactivity between the emulated video hardware and the video card in the host system than is currently supported.
Not to say it's impossible, but it's just not something that's likely to be seen for some time. One of the experimental features of VMware 5.5 and now 6.0 is support for Direct3D video acceleration (a key component of Aero), but a number of functions needed for Aero, such as pixel and vertex shaders, are not yet working. In short, don't run Vista in a VM if you need Aero running, and don't expect it to be possible to run Aero in a VM any time soon.
A last word on licensing
Earlier in this article I mentioned that Vista will run from 14 to up to 30 days without needing to be activated, depending on your source for the installation media. This isn't intended to be a way to circumvent Vista's licensing agreements, especially since Vista has specific provisions in its EULA for running in virtual machines. To that end, I'll be exploring the issue of Vista's VM licensing in detail in a follow-up article.
About the author: Serdar Yegulalp wrote for Windows Magazine from 1994 through 2001, covering a wide range of technology topics. He now plies his expertise in Windows NT, Windows 2000 and Windows XP as publisher of The Windows 2000 Power Users Newsletter and writes technology columns for TechTarget.