When it comes to running a virtual operating system, VMware is
the first product that comes to mind. It’s been around for quite a while, it’s
stable, reliable, and works extremely well. Unfortunately, it’s not free and
depending on your budget, can be too expensive for you to consider. Fortunately,
it’s not the only game in town. Different ways of tackling virtualization have
led to a number of different software packages including VMware, Xen,
VirtualPC, and Usermode Linux. Another virtualization program is called QEMU and it’s a lot like VMware in
concept.
The first step is to grab QEMU from the project Web site.
You can download the source or binaries for different platforms. Once the
software is installed, you can install your first virtual operating system. The
next step is to create a disk image:
<code>
$ qemu-img create linux.img 2G
</code>
This creates a 2-GB image file that will be used for the
virtual hard drive. You can use different formats for the image file; you can
even use the VMware vmdk image
format. The default (raw) format is the best for Linux guest operating systems
as it will only take up as much space as required.
Next, grab an ISO image of your favorite Linux distribution,
or the CD-ROM it came on. In this case, the ISO image used is the Mandriva
Linux 2006 DVD install image. The next step is to start QEMU and tell it to use
the image and to boot from it, and at the same time, let it know that our newly
created image file is the primary hard drive for this virtual machine:
<code>
$ qemu -boot d -cdrom ~/Mandriva-Linux-Powerpack-2006-DVD.i586.iso -hda linux.img
</code>
This tells QEMU to boot first off the CD-ROM (-boot d), that
the CD-ROM device is an ISO image (-cdrom;
or use -cdrom /dev/cdrom if you are
using a real CD), and that the /dev/hda
device to the virtual machine is the file linux.img.
Proceed with the install as usual; when the installation is
done and you have to reboot, change the command line to something like:
<code>
$ qemu -boot c -cdrom /dev/cdrom -hda linux.img -user-net -m 256
</code>
This tells QEMU to boot off of the hard drive and to use /dev/cdrom as the CD-ROM device; it
allows networking and assigns 256 MB of RAM to the virtual machine.
QEMU isn’t as fast or as feature-rich as VMware, but it’s
still quite capable. It has support for 64-bit hosts and guests—something that
VMware is just now introducing in recent betas, but which require very recent
64-bit host CPUs. If you’re looking for a cheap way to virtualize an operating
system or two for testing purposes, QEMU may be a great alternative to an
expensive and proprietary solution.