Booting with Grub (custom kernels!)
This guide will show you how to boot a custom kernel with grub!
To run a custom kernel, you need only two things, a kernel (of course!) and a GRUB configuration.
Lets start with GRUB. This assumes that you will not be using an initrd file, but you may use one, and that your kernel image will be installed as /boot/vmlinuz:
# mkdir -p /boot/grub
# cat <<EOF > /boot/grub/menu.lst
default 0
timeout 5
title Linux Default
root (hd0)
kernel (hd0)/boot/vmlinuz root=/dev/sda1 ro console=xvc0 clocksource=jiffies
EOF
That is it for GRUB! Now, as for your kernel, you just need to make sure that it is compiled to run as a Xen DomU with paravirtualization. This requires that you use a recent Linux kernel with support for Xen enabled, or you use a patched kernel such as provided by XenSource (http://xenbits.xensource.com/linux-2.6.18-xen.hg)
The compiled kernel image may be placed anywhere inside your filesystem as long as GRUB is configured to point to it. The above example assumes this location is /boot/vmlinuz.
Finally, from the management console, execute the command, "boot-grub". This command is API-accessible. Unfortunately, for now, you will need to manually specify this whenever booting. Your VPS will boot with a system-default image by default, if for instance, the node crashes. This caveat will disappear once we complete a migration of all accounts to a grub-based configuration.