HOW TO: Run Vista on Linux/XP

One of the downsides of beta testing is that your test machine invariably becomes a splintered mess in a very short of space of time as your fresh beta build gets pulled apart tweaked recovers from crashes and so on.

Then a new build comes out and you start all over again.

Finding an appropriate test platform can also be tricky. On principle I’ve never used my main machine to test beta software; that’s an open invitation for pain and suffering. I get enough of that from the users I support without having to flagellate myself albino-monk-style.

So in these trying circumstances VMWare Workstation is my friend and salvation. There are a number of virtualisation applications around but I’ve found this one to be the most robust and flexible with loads and loads of seriously cool features.

Installing Vista on VMWare has been an interesting experience. It is a supported workstation type in both 32-bit and 64-bit editions but the workstations are labelled quite boldly as “experimental”. In other words “if it doesn’t work don’t come whining to us”.

In spite of this Vista on VMWare is a pretty seamless experience. The basic technology behind VMWare as with most virtualisation software is to present the guest operating system with virtual hardware resources supported by very generic hardware drivers so as to maximise platform functionality and multiple OS support.

The profile for Windows Vista is very similar to Windows 2000/XP except the minimum recommended RAM is 512MB and the recommended hard disk type is SCSI. The RAM is really an absolute minimum but even at that level the host machine needs a good chunk of memory to keep running (1GB minimum). The SCSI drive recommendation is unnecessary though – IDE works just fine. 16GB dedicated space is the minimum but I prefer to beef it up to 40GB – just to have the extra capacity for testing apps on Vista.

Installing Vista on VMWare has changed quite a bit as the builds have come out.

Before Beta 2 Vista would install fine but initially display in dreadful 4-bit colour until you installed VMWare Tools which incorporates an SVGA driver (if you want a vision of hell Vista at low-res colour comes pretty close). In fact VGA is the only real bugbear for virtual Vista machines.

After Beta 2 Vista would hang at the “Loading Files” stage of installation and get no further. Bizarrely this was due to the VMWare graphics settings so you’d have to modify the workstation’s VMX config file to force 640×480 resolution. Vista would then install without a hitch and you could undo the VMX settings once VMWare Tools was installed.

With the post-RC1 interim build 5728 that particular problem seems to be fixed – no installation hangs and full colour before the SVGA driver is installed. These ‘feature improvements’ are coming from Vista not from VMWare.

One aspect of virtualisation which irritates a lot of people is USB functionality. Regardless of the USB capabilities of the host VMWare Workstation will provide one two-port USB 1.1 host adaptor per virtual machine and that’s it. It doesn’t matter if you have eight USB 2.0 ports or not – two USB 1.1s is all you’ll get. Even more annoyingly if you have more than one virtual machine powered on when a USB device is plugged in to one machine all machines respond – even if they don’t have focus. Personally I find this functionality more trouble than it’s worth. As VMWare has the funky feature of Shared Folders (workstations can access privately shared folders on the host) it’s far easier to dump the files you want there rather than stuffing around with USB 1.1.

Of course for testing physical devices like printers or scanners there’s not much you can do to get around the limitation. If USB 2.0 really is a requirement don’t bother with any sort of virtualisation. Given VMWare is such a mature product it’s confounding to wonder why USB 2.0 support hasn’t been perfected yet.
The machine settings for Windows Vista work exactly the same for Longhorn Server. Put the machines onto a private NAT or host-only subnet and you can simulate client/server functionality precisely without impacting the rest of the network.

The final joy of VMWare Workstation is that it works equally well on Windows or Linux. I’m currently running it on both platforms (Windows XP SP2 and Novell SUSE Linux Enterprise Desktop 10) and the functionality is exactly the same on both platforms with the exception that private VMWare networks on Linux can’t be configured from within the application as they can on Windows – you have to go under the hood and tweak the config for that.