Qemu on Ubuntu
(Updated 2007/10/29 for Gutsy)
The easy way to get and use qemu on Ubuntu is simply install the package from Synaptic. This will give you the precompiled version that runs fairly well.
aptitude install qemu kqemu-common kqemu-source
Now compile the kqemu kernel module that accelerates qemu significantly.
module-assistant auto-install kqemu modprobe kqemu
This Ubuntu forum topic is also helpful as it shows how to ensure kqemu module loads at boot time.
Once you have qemu installed, it is time to play with some other operating systems. I chose to install CentOS 4.2 into a virtual machine, on top of which I plan to install Xen.
After downloading the CentOS-4.2-Server.iso prepare my disk (image). (Luckily I have 12G free in /home)
qemu-img create -f qcow centos-4.2-xen-3.0.img 6G Formating 'centos-4.2-xen-3.0.img', fmt=qcow, size=6291456 kB
Then invoke qemu to fire up the VM in install mode.
qemu -cdrom CentOS-4.2.ServerCD-i386.iso -m 512 -boot d centos-4.2-xen-3.0.img
Also after booting the VM I see this output from ifconfig on my host.
> ifconfig tun0 tun0 Link encap:Ethernet HWaddr 4A:2D:55:50:E9:20 inet addr:172.20.0.1 Bcast:172.20.255.255 Mask:255.255.0.0 inet6 addr: fe80::482d:55ff:fe50:e920/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
This information will be helpful to configure the networking in the guest VM, which should use the following values...
- IP Address: 172.20.0.2
- Netmask: 255.255.0.0
- Gateway: 172.20.0.1
- DNS Server: (Whatever your host uses)
After installation of CentOS, shutdown and run qemu like this.
qemu -m 512 centos-4.2-xen-3.0.img
There are a few more commands to run on the host, to get the VM fully networked.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo "1" >/proc/sys/net/ipv4/ip_forward
Now the VM should be able to reach the network and Internet.
Next step is to install Xen from the RPMs that XenSource provides for RHEL-4.1 This /should/ work on CentOS-4.2 but I will download the source RPMs and recompile just in case.
(Time passes...) It worked! I have the RPMs installed and was able to boot into the Xen kernel, run xm list and xm info. Here is the grub entry (which needed some slight modifications).
title Xen (2.6.12.6-xen3_2.1) root (hd0,0) kernel /xen-3.gz com1=115200,8n1 dom0_mem=128000 module /vmlinuz-2.6.12.6-xen3_2.1_rhel4.1 root=LABEL=/ ro maxcpus=1 console=tty1 console=ttyS0,115200n8 module /initrd-2.6.12.6-xen3_2.1_rhel4.1.img