Jun. 15, 2008
I have been meaning to look into using Virtualbox as an alternative for VMware Workstation that I have been using for quite sometime. Now, that I have been running them in parallel for almost a month I see someĀ benefits and some disadvantages with both. The definition of personal use for Virtualbox is undeniably a big benefit. According to the licensing FAQ this is the definition of personal use:
"Personal use is when you install the product on one or more PCs yourself and you make use of it (or even your friend, sister and grandmother). It doesn't matter whether you just use it for fun or run your multi-million euro business with it. Also, if you install it on your work PC at some large company, this is still personal use. However, if you are an administrator and want to deploy it to the 500 desktops in your company, this would not qualify as personal use. Well, you could ask each of your 500 employees to install VirtualBox but don't you think we deserve some money in this case? We'd even assist you with any issue you might have."
Virtualbox comes in both an Open Source Edition (OSE) and a closed source edition. Apart from not supporting USB the OSE release would be sufficient for my needs and has many of the features available in VMware. For details on the differences between the OSE and closed source edition look here.
My current setup is an Ubuntu host system (Hardy) on which I am virtualizing a number of different boxes used for development, testing, hacking and office stuff. The hosts I have been testing on Virtualbox all run Windows. As Hardy (at the time of the writing) had an outdated version of Virtualbox I went for a Ubuntu packaged version available from the vendor (Sun's) web site.
The last time I tried Virtualbox it didn't go so good as I was to lazy to reinstall my Windows boxes and migration was not as easy as now. This time this was a lot smoother as Virtualbox supports the VMWare virtual disk format. So basically I copied the disks to a new folder and created a XP configuration pointing the disks to the copied ones. Upon first boot Windows XP SP2 blue screened. This brought me to this article: http://www.virtualbox.org/wiki/Migrate_Windows
I followed the easy steps in the "How to migrate existing Windows installations to VirtualBox", involving running MergeIDE on the system when booted in VMware and disabling the agp440.sys by booting into Windows recovery console. Finally, checking the IO APIC option (as I was to lazy to change my hal) in the Virtualbox configuration I was good to go. The system booted perfectly and ones running I installed the Guest tools to get better hardware and graphic support.
Something that I noted directly and which I can confirm after several weeks of use is that Virtualbox at least "feels" considerably faster. I do not have any hard figures as I did not benchmark it. However, my Vista systems are quite fast and I can now actually do some real work on them. Another thing that works a LOT faster is suspending and resuming guest systems, and as I use this feature a lot. In Virtualbox this takes seconds rather than minutes, even with systems having a gig or more of memory.
Another nice thing with Virtualbox is its support for something called Seamless Mode. This mode allows for windows from virtual machines to better blend in with windows from the host OS. In this way you can have Windows applications from the guest side by side with your host applications.
Bridging network interfaces is one of the things that isn't as smooth as in VMware. In VMware it's a piece of cake and works painlessly (except for some wireless configurations). In Virtualbox it involves using the hosts OS bridging capabilities which makes it slightly more painful. My first attempt on bridging my wireless-interface failed miserably and I haven't tried since. The NAT networking however is roughly the same. Both applications support virtualizing the interface as either the AMD PCNet or the Intel Pro adapter.
When switching from the OSE release to the closed source 1.6.2 release that I am running now I experienced some troubles with the USB support. Each time I configured a guest machine I received the following warning "Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer.". The consequences of the error, as it suggests, was that obviously USB was not working. This was because Virtualbox looks in the old /proc/bus/usb location rather /dev/bus/usb for details regarding USB. In order to fix this in Ubuntu one needs to edit the /etc/init.d/mountdevsubfs.sh file.
sudo gedit /etc/init.d/mountdevsubfs.sh
Look for the following section in this file:
#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb
Then uncomment the last four lines so it looks like this:
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb
Finally, even though Virtualbox looks very promising it has crashed 3 or four times during the last month, something that has not happened for me once running VMware for the last couple of years. This was obviously VERY annoying and unacceptable. I don't know what to blame so far my however I would gladly blame my crappy HP6910p notebook. However, that would probably not be fair as I am running VMware on this same hardware.
So, I still have some more parameters to compare, investigate and try on my part before making a decision on what platform to use in the future.