For various reasons, both at work and at home, I have need to use virtualization on more than one of my computers. Virtualization is a really neat technology that allows one computer which is running Linux (or other operating systems) to pretend to be multiple computers, each of which can run any PC operating system including other versions or distributions of Linux or even Windoze.
For several years I have been using VMWare which is a good commercial, but proprietary and closed-source virtualization manager. I have generally had good results with it, but the company only officially supports a few Linux distributions and kernels as the host operating system. This puts a crimp in things when you need to upgrade to a new kernel for functional or security reasons.
One VMWare employee has come up with a small program that can extend the ability to use VMWare to additional kernels but I have found this to be limited also. A few months ago I was no longer able to run my favorite game or to use that Windoze program at work. This was a problem for me.
I have found a really good open source virtualization manager in VirtualBox. This software allows me to run Windows XP on my laptop at work in order to use the one piece of software that I need that does not work well on Linux, and to run Fedora 5, an older version of the Fedora 8 that I currently use on my desktop computer at home. At home I use Fedora 5 to run my favorite Linux simulation game, Railroad Tycoon which no longer runs on current versions of the Linux kernel.
Thus instead of keeping a separate computer to run this older software, and incurring all of the expenses of that, I can use my primary desktop computer that runs Fedora 14 to also run a virtual computer with Fedora 5 so that I can play my game; all at no extra cost.
VirtualBox itself is really cool software. In addition to being open source, it is also free of charge. It is easy to install and uses less system resources, such as CPU cycles, than VMWare. VirtualBox is easy to use and it is fairly easy to install the guest operating systems. VirtualBox loads faster than VMWare and starts up paused virtual sessions much faster as well.
I really like the shared folders feature which, I think, works much better and is easier to configure than the VMWare version. This allows the guest operating system to access any folders of the host operating system that I choose to configure.
I have run into a couple caveats, however.
The first is that it is a little more difficult to install the VirtualBox additions to the guest operating system. These additions allow one to configure the display resolution, and also allows the guest session to automatically capture and release the mouse pointer.
I kept getting errors when attempting to install the guest additions. I found that by prefacing the commands in the VirtualBox instructions with the bash command (thus running the program inside a bash CLI session) I was able to install the additions. This problem was true of any BASH script that I attempted to run. After installing the additions, this little circumvention was no longer necessary.
Your command should look like this:
# bash ./VboxLinuxAdditions-x86.run
Note: this problem was extant with earlier versions of VirtualBox. It no longer appears to be the case and appears to have been corrected when used with more current versions such as Fedora 10 and above. The problem still exists with CentOS 5.3.
The other issue that I ran into is with networking. It was fairly easy to set up a host-based network in VMWare, in which the host and guest could communicate directly via a virtual network segment. This can be done with VirtualBox, but is more difficult. However the ability to share folders with the host pretty much makes up for this. NAT-based networking is easy to set up and works quite well. In fact I have found that with shared folders, NAT’ted networking is all I need.
I plan to use VirtualBox exclusively from now on. VMWare was good, but it VirtualBox is better and costs nothing.
I hope you find this information useful.