Windows 7 and Virtual Machines

My work involves creating software for cell phones that integrates tightly with the OEM applications. This sometimes requires us to use different operating systems and various virtual machines for emulators and development environments.

I also use VMs for trying out new things. For example I’m currently running a VM with Windows Server 2008 hosting the Beta of Team Foundation Server 2010 so that we can try out various features of the new version. I also have a Sun VirtualBox VM running Ubuntu for building the Android Open Source Project (AOSP). The Palm webOS SDK uses a Sun VirtualBox VM to run its emulator. Then I’ll also be running emulators for Windows Mobile and Android–but those are not using quite the same kind of VM technology. They are more software emulators–actually running a virtualization of the phone’s hardware rather than trying to run a virtualized PC.

I’ve been running Windows 7 since January, first Beta1, then RC. I finally upgraded to the release version–and did so by doing a clean install on a new box. It is a nice upgrade, from an AMD Athlon 64 X2 to a Core 2 Quad. The first real hitch I ran into was trying to run two VM products at once. I’d been doing it all along on the earlier versions of Windows 7, so I didn’t understand why it wasn’t working.

To make a long story somewhat shorter, it appears that the primary problem was the difference between AMD and Intel hardware virtualization technology. It seems that Sun’s VirtualBox is better able to co-exist in the AMD realm. Note that I had VirtualBox set to not use hardware virtualization, but if the Windows 7 Virtual PC was running, I could not start the VirtualBox emulation.

Granted that VirtualBox seems to be behaving badly here, Windows 7 actually behaved even worse. Sun at least gave an error message and shut down. Trying to start the Win7 VPC while having VirtualBox running caused an immediate Blue Screen of Death (and a kitten died). Not wanting to kill any more kittens, I started looking for workarounds.

Windows VPC and Sun’s VirtualBox have the virtues of being free. They do not, however, have the crown of the king of virtualization products. That belongs to VMWare–which is not free. However, my work is certainly willing to buy us the tools we need…so I started working to see if this would do what I needed.

Let me just say that converting the virtual hard disks from VirtualBox (VDI) to VMWare (VMDK) is not as easy or straightforward as one would like. It turns out that you have to use the procedure shown here to first convert the disk to the fully-expanded raw format, and then convert it to the VMDK format that VMware needs.

I now have the AOSP building on that virtual box (and I increased it to a dual-core VM). I’m also running the virtual server for the TFS beta. I still need to verify that I can convert and run the webOS emulator in VMWare, but I’m pretty confident in that.

Tags: , ,

Leave a Reply