Wednesday, October 22, 2014

Sayonara VMWare Hello VirtualBox

I recently migrated my Windows XP virtual machine from VMWare to VirtualBox. I did this because I got fed up with the latest VMWare Fusion (MacOSX product) "upgrade" to their bank accounts. I was perfectly happy with the product, or I thought so. All I wanted to do was continue using it while I upgraded the operating system for my Mac.

No such luck. My version of VMWare Fusion was not compatible with my new version of Mac OSX, the operating system for my MacBook Air. I had to pay up or get off the pot.

I decided to get off the pot.

I had some really good experience with VirtualBox on a Linux host. My mother relied upon a battered Windows VM, an installation that had persisted through three hardware changes without a re-install before I converted it to a VM in 2011 to give her a layer of protection for the malware infections she was having trouble with.

It worked, and it didn't. The host computer ran flawlessly, the VirtualBox VM degraded over time just as any Windows installation will. After many attempts to resolve some thorny USB bidi communication issues with the port emulator and a multifunction printer-fax-scanner-copier, it finally got to the point where the only real solution which would allow her to be independent of my participation in keeping her computer running would be to move her to a low-end Windows 7 business system and put her data (she's a lawyer) in the cloud.

In short, the problem wasn't really VirtualBox, it was Windows XP's handling of bidirectional messages over USB. She needed to go to Windows 7 anyway, particularly as county courts are finally dragging themselves into reliance on electronic filing of documents and are lining up to buy Microsofts's latest attempt to strong-arm a niche market. ActiveX "security" is popular with county governments.

The "upgrade" to Windows 7 was going to eliminate the access to legacy applications that had previously countermanded a re-install of Windows XP over three hardware changes. This was going to be the painful jump away from those legacy document creation apps that were paid for, permanently licensed, and just worked even though the companies that wrote them were long gone, or gobbled up by something like Lexis-Nexis.

But, I digress.

I moved her to the new box, shut down her limping Windows VM, put all her documents in Google Drive and regained possession of the FoxConn net-top I had loaned her in 2011 to host the VM. I have an SSD in that box, and it is still pretty snappy more than three years later and really a solid year or two out of it's life cycle. It's a AMD64 Dual core 1.6GHz CPU, and I dropped 4 GB of RAM in there (supports 8 GB).

But, I further digress.

I want Windows on my MacBook Air so I can use it for working in Microsoft-centric environments. I mainly just need to be able to use a terminal services client and Internet Explorer, but it's kind of a big deal. If this doesn't work I have to carry two laptops, and the second one (my corporate issue laptop) weighs three times as much as the first one (my personal MacBook Air).

I was tired of being VMWare's financial supplicant, particularly when the upgrades i was paying for added zero functionality for my situation. Oracle distributes a version of VirtualBox for MacOSX hosts, so I decided to give a migration from VMWare to VirtualBox a try.

It was surprisingly simple.

MacHeads: control-click the VMWare VM, choose expand package contents, copy this to your target directory for your new VirtualBox VM, profit.

Seriously. All you need to do then is create a new VM in the GUI, point the disk emulator to the root (the un-numbered one) .vmdk file, and fire that sucker up.

Now, I had issues:
  • Windows couldn't find the VMWare mouse driver in Virtualbox by default. It is in the guest additions pack, and you have to do some CLI-Fu to extract it where the plug-and-play system can use it, but it's no big deal.
  • Similarly, Windows XP plug-n-play couldn't find the Network adapter driver from VMware, so I killed that one and installed a new one, telling windows it was a Intel Pro 1000 MT desktop adaptor after I went and tracked down that driver.
    • The Intel Pro 1000 MT is one of the options in VirtualBox, so it just works. I told the VM to install that port, rebooted, pointed plug-n-play where it needed to go, and voila'.
  • Windows needed re-activation (detecting a HAL-layer hardware change), but since I have a good license that was no big deal.
But thats it. Seriously. The MacBook Air has a 1.6 GHz Intel Core i5 and 4 GB of RAM. The Windows VM would take about 75 seconds to boot up under VMWare. It takes 30 seconds in VirtualBox. WTF? Cool.

Need to make a copy? Just rsync the directory. I moved that to a Linux host and it booted up without issues the very first time. I've never had that happen with a VMWare migration. There's always something.

So, VirtualBox is cool. If you're thinking about a move from VMWare, go for it. If you want to migrate a Windows XP system from bare metal to virtuality here are instructions for doing so.

It friggin works.