One of the best ways to test a new (or old) operating system is to install it in a virtual environment. Instead of messing with physical hardware, you create virtual disks, run processes on a virtual CPU, test what happens when you add some virtual memory, and save the whole thing as a file that you can restore in a few minutes.
I've been running various builds of Windows Vista in virtual machines for months now, but not without a lot of pain. And recent builds have been particularly troublesome.
Windows Vista RC1 installs and runs just fine on Microsoft's free Virtual Server 2005 R2. It also reportedly installs and runs on VMWare Server, although I haven't personally tested this combination.
But if you try to install any recent build of Windows Vista on VMWare Workstation, you'll be stymied. The opening setup screens appear, but the system appears to hang when it reaches the end of the text-mode "Windows is loading files..." screen.
Joel Spolsky thinks it's a dirty trick:
If I were VMWare I'd be pretty ticked off at Microsoft right now; since Microsoft makes a competitive product, Virtual PC, it is Highly Suspicious that they come out with a major new test release of an operating system that just happens to not work on VMWare Workstation, something which is practically the de facto standard for developers testing new operating systems. Shabby and slimy, Microsoft. They're probably testing Windows Vista with tens of thousands of applications; not testing with VMWare is inexcusable.
Actually, there's a more prosaic explanation. as this post from a VMWare representative on their support forum explains. The culprit is a combination of two changes in Vista, one in the way the BIOS is addressed during setup, the other because VGA (640 x 480) support is no longer available. Either change by itself would be no problem. Together, they make it impossible for VMWare to switch to the correct display mode during a crucial early part of setup.
So is this really a "shabby and slimy" trick on Microsoft's part? I doubt it. If so, Microsoft's developers are playing dirty tricks on themselves as well, because I was unable to install any Vista build between Beta 2 and RC1 on Microsoft's Virtual PC 2004. And as it turns out, there are quite a few workarounds for creating a virtual machine in VMWare Workstation. You can create the VM using VMWare Server and then use that machine in VMWare Workstation. Or you can add these two lines to the configuration file (.vmx) for the VM, as many VMWare users have reported on the support forums and as Joel explains in his post:
svga.maxWidth = "640"
svga.maxHeight = "480"
After I made this small tweak, I was able to install Vista RC1 as a guest OS in VMWare Workstation with no problems.
Meanwhile, I strongly recommend against trying to run any version of VMWare on Vista as a host operating system. When I tried it over the weekend, I ended up with a badly broken network and eventually Vista crashed with a PFN_LIST_CORRUPT STOP error. That's not surprising: VMWare adds several unsigned kernel-mode drivers and two additional network adapters, and Vista has a completely rewritten network stack. Fortunately, everything returned to normal when I uninstalled VMWare Workstation.
The tension between virtual environments and new operating systems is constant, and it's particularly acute when an OS contains as many fundamental changes as Vista does. For now, at least, the best option for developers and IT professionals who want to use Vista and VMWare together is to run VMWare (Server or Workstation) on a fully supported host OS - Windows Server 2003, Windows XP, or any of a gazillion flavors of Linux and install Vista as a guest OS only.