Yes, an Eee PC can run 10 operating systems in parallel!
I installed
qemu 0.11.1 with
kqemu 1.4.0 on my Eee PC 900 (1Ghz/1GB running Linux), using an external hard-disk for storage. I was able to get the following operating systems running with very little difficulty:
OpenBSD NetBSD FreeBSD DragonFlyBSD Debian GNU/Linux Windows XP Mac OS X Haiku
I hope to get
PureDarwin and
Solaris running in qemu soon. I use
9vx to run
Plan 9.
I was able to install four of these operating systems at the same time without swapping or majorly slowing down the Eee PC. An Eee PC is not such a very powerful computer; I was impressed with qemu's efficiency.
I cannot use
kvm, as the Eee PC's Celeron M CPU does not have the necessary VT extensions, but kqemu works well. On a PC with VT extensions, qemu will run faster with -enable-kvm. You can check for VT extensions using:
egrep -w '^flags.*(vmx|svm)' /proc/cpuinfo
If you cannot use kvm, you will want to use kqemu if possible. In this case, do not use qemu 0.12; the developers have removed kqemu support. I have asked them to restore kqemu support. For now, kqemu can be used with qemu 0.11.1.
Here are some of the commands I used to install and run the different operating systems.
General setup:
sudo modprobe kqemu
sudo addgroup kqemu
sudo adduser sam kqemu
sudo chgrp kqemu /dev/kqemu
sudo mount -o remount,size=1280m /dev/shm
qcow2 is the best disk image format. It features copy-on-write shared blocks (saves space), snapshots, compression and encryption. For the sake of the underlying filesystems, you do need to specify a size when creating an image. To create a new qcow2 image that can grow to hold 4 gigabytes:
qemu-img create -f qcow2 openbsd.img 4G
To install OpenBSD, for example:
qemu -hda openbsd.img -boot d -m 128 -cdrom openbsd-install46.iso -enable-kqemu
Here are the commands I use to start each operating system:
qemu -hda openbsd.img -vga std -m 128 -enable-kqemu -name openbsd
qemu -hda netbsd.img -m 128 -name netbsd
qemu -hda freebsd.img -m 128 -enable-kqemu -name freebsd
qemu -hda dflybsd.img -m 128 -enable-kqemu -name dflybsd
qemu -hda lenny.img -m 128 -enable-kqemu -name lenny
qemu -hda windows-xp.img -m 128 -enable-kqemu -name "windows xp"
qemu -hda tiger-x86-qcow2-c.img -net nic,model=rtl8139 -net user -m 128 \
-enable-kqemu -name "os X"
qemu -hda haiku-r1alpha1.image -m 128 -enable-kqemu -name haiku
You can use qcow2 snapshots to save the initial clean state of your system. To take a snapshot, and list snapshots:
qemu-img snapshot -c initial windows-xp.img
qemu-img snapshot -l windows-xp.img
You may have a jumbo-sized raw image. To convert it to the qcow2 format and compress blocks (-c):
qemu-img convert -c -O qcow2 tiger-x86-flat.img tiger-x86-qcow2-c.img
To convert a VirtualBox image to a (large) raw image (after which you can convert it to qcow2):
VBoxManage clonehd --format raw solaris.vdi solaris.raw
Notes for each operating system:
FreeBSD, DragonFlyBSD, Debian GNU/Linux and Windows XP worked for me with no troubles at all (so far).
NetBSD does not seem to like kqemu, it works ok with plain qemu. I don't know if it works with kvm.
OpenBSD and NetBSD networking was broken, but I found how to fix it.
For NetBSD, choose option "4. Disable ACPI and SMP" at the boot prompt. This can be set permanently by editing boot.cfg:
default=4
For OpenBSD, we need to disable mpbios (for full details, see
http://scie.nti.st/2009/10/4/running openbsd 4 5 in kvm on ubuntu linux 9 04). In brief, login to OpenBSD as root and type the following, then reboot:
config -ef /bsd
disable mpbios
quit
Solaris is not working for me in qemu yet, I tried to convert a VirtualBox image but it does not work properly in qemu.
Mac OS X boots, but it is not very stable.
With Haiku the mouse pointer is difficult to control. I think this has been fixed in a recent nightly-build of Haiku (see
http://haiku files.org/raw).
I hope this has been useful or interesting, please contact me if you have any questions about it or if you need some help with qemu.
Sam Watkins
2009-12-14
sam.nipl.net
sam@nipl.net