HOWTO Deploy A Paravirtualized Xen Kernel
This HOWTO describes how to use one of the paravirtualized kernels we distribute here on the site. As an example we will be using linux-2.6.35.4-xenU.x86-64.tar.bz2, which we want to deploy into a guest filesystem to give it paravirtualized capability.
Let's assume that the guest filesystem is mounted at /mnt/loop (in other words, /mnt/loop is the root of the guest filesystem)
# cp linux-2.6.35.4-xenU.x86-64.tar.bz2 /mnt/loop # cd /mnt/loop # tar -xf linux-2.6.35.4-xenU.x86-64.tar.bz2
At this point there should be a 2.6.35.4 kernel in /mnt/loop/boot and corresponding modules in /mnt/loop/lib/modules. Now we need to change other aspects of the guest filesystem to be compatible with the domU kernel. Important things to note is that the root device for the kernel is /dev/xvda1 and the default boot console is hvc0.
If you want to boot the domU kernel using pygrub or pvgrub you will need an entry in /boot/grub/grub.conf inside the guest filesystem:
title vmlinuz-2.6.35.4 root (hd0,0) kernel /boot/vmlinuz-2.6.35.4 console=hvc0 root=/dev/xvda1 ro
For most distros it will be necessary to update /etc/fstab inside the guest filesystem:
/dev/xvda1 / ext3 defaults,errors=remount-ro 0 0
Finally you need to define the hvc0 console, which will depend on what linux distribution you are installing to. Many distros use /etc/inittab to define consoles (refer to your distro's documentation; the below happens to work for OpenSuse but the details will probably be different for you):
hvc0:2345:respawn:/sbin/mingetty hvc0
Also add hvc0 to /etc/securetty inside the guest filesystem if you want to allow root logins on this console.