VMWare Player 3.1.2 vs. VirtualBox 3.2.8

I've been using both VirtualBox and VMWare over the last few weeks to virtualize my everyday productivity environments. That is, instead of carrying my laptop around to and from work, and being bound by the software installed on that, I now carry a USB portable hard-drive with my virtual machines, which I can run on whatever hardware is at hand. The advantage of this is that I can carry something smaller, and I can make best use of the fastest hardware available, instead of being bound to my 1.2GHz ULV CPU of the laptop.

My dream would be to have a virtual operating system on a fast flash USB drive (and by this I mean fast write, I've blogged about this before, but most USB flash drives these days are slower than an external 5400rpm USB hard-disk) that I can plug into any computer available and simply power up.

The closest I've come to this is using VirtualBox Portable. This is an unofficial re-pack of the VirtualBox client which you can just extract to USB and double-click to run. There's both a Windows x86 and 64bit version, which can be used in parallel. However, there's no Linux/Mac client yet, and the client will only run in Windows if you have admin rights. Basically what it does is it installs some system drivers, then uninstalls them whenever you close the client. This has worked fairly well for me as I have full control of all my computers, but that may not always be the case.

Without using the Portable edition, you would have to install the VirtualBox client on every machine you want to launch your vms from. This isn't a big deal really, as the client is free and not that large. The only disadvantage I found with doing this is that VirtualBox doesn't work so well when you store your actual machines on an external drive, and move these around between different clients. There's a lot of fiddling around involved, and sometimes you must resort to manually hacking the xml config files to get things to work.

Another issue I found with VirtualBox (the Portable edition), is that if I mount a DVD image in one location, then power off the vm and move to a different machine where the DVD image is no longer available, the VirtualBox client shows an error that it can't find the image file and won't let you start the machine, or edit it's settings. In these cases I had to manually edit the vm xml config files to delete the image mounting. No biggie, but annoying.

My final annoyance with VirtualBox is that there's no easy way to compress a vm. There is a command you can use, namely VBoxManage modifyvdi _file_path_ compact, but this won't work when using the Portable edition. And it also won't compact any non-zeroed space. So if you delete some big files in your VM, the space will not get zeroed, the pointer to the file will just be dropped, so the compact command won't do much. To get around this, you can use the free sdelete utility in your guest Windows vm first. This will zero any unused space. Then run the VirtualBox compact command. If you're using a Linux based guest OS, things are a little harder (and more dangerous). I think I've blogged about a way to do that too, but I've long since stopped using Linux guests (no support for latest Visio or Office, which there is no viable alternative to for me, plus poor support for multiple-screens, some weird behavior when you run your guest from different hosts, and generally too much messing around with configs for my liking).

The VMWare Player works very similarly in most ways. There is no Portable edition though, so you must install it on whatever host you want to run your vms on, and it requires admin rights too. However, the VMWare Player has no problems with keeping your VMs on a removable drive. Whenever I move from one host to another, the Player on each host remembers where my VMs are stored on the USB and lets me launch them straight away. A dialog box comes up asking if I moved or copied the VM. I click move, and everything just works.

Feature wise, both VirtualBox and VMWare are almost identical. Both allow multiple screens, seamless integration, seamless mouse pointer capture (although with VMWare you need to click once to enter the virtual OS, with VirtualBox you don't), folder shares, USB pass-through, image mounting, 3D acceleration, CPU virtualization acceleration, and so on. The key differences I've found between the two so far are:

  1. VMWare Player lets you suspend a VM on one host, and then resume on another. This throws a warning when your hosts are using different architectures, but lets you go ahead anyway. I successfully suspended on an Intel host and resumed on an AMD host. Probably not advisable, but it works. VirtualBox will not let you do this.
  2. VirtualBox however supports snapshots. VMWare Player doesn't. You need VMWare Workstation for that, which isn't free.
  3. VMWare Player lets you easily compact/shrink the guest via a single option in the guest Tools.

Performance wise I haven't noticed any significant differences. Both seem about as fast as each-other. I ran the Windows Experience Index as a crude benchmark. The Win7 host got scores of [6.5,5.9,4.2,3.4,5.9]. VirtualBox Win7 guest got scores of [6.3,4.5,1.0,1.0,5.9]. And the VMWare Win7 guest got scores of [6.3,4.5,1.0,3.0,6.1]. The scores represent [CPU,RAM,Aero,3D,HD]. The most notable difference is VMWare scored 3.0 in 3D acceleration while VirtualBox only scored 1.0. Both had 3D acceleration enabled. Perhaps it just didn't run in VirtualBox (I believe it's still experimental).


  1. Hi,

    Just a suggestion that may work. Have a Linux distro on a USB key with either vmplayer or virtualbox installed and your VMs on the external disk. I expect this to work and you would have a portable OS with virtualized guest.

    Note that I have not tried it but I can't see why it would not work.

    Let us know if you try it and the kind of results you got.




Post a Comment

Popular posts from this blog

Wkhtmltopdf font and sizing issues

Import Google Contacts to Nokia PC Suite

Can't delete last blank page from Word