XAPI Ubuntu PV
Ubuntu PV Guest Support
These instructions are specific to PV (paravirtual) guests running on XAPI. PV means that the guest's kernel is launched directly from XAPI and that the kernel has built-in support for Xen Project Hypervisor. This page is not applicable to HVM guests.
The reason why Ubuntu 10.04 works as a PV guest without changing the kernel is because 10.04 (not sure about the other Ubuntu releases) shipped with a kernel that has pvops built-in, which means it was pre-compiled to support being run as a Xen Project PV guest natively.
For more information specific to Xen Project on Ubuntu, read here: https://help.ubuntu.com/community/Xen
All of that said, the below is mostly generic to any Linux PV guest.
If you're having trouble booting your Linux (Ubuntu in this case) guest due to complaints about XAPI being unable to locate the kernel, the below may help.
Update PV Grub Configuration
First, if you want to live edit the guest's grub configuration, you can do so:
export UUID=MYUUID #list the VM disks xe vm-disk-list uuid=$UUID #edit system's live grub xe-edit-bootloader -n "MYHOSTNAME" -p 1 -f /grub/grub.cfg
Set the Boot Kernel
Now, assuming you know exactly what the kernel and ramdisk file names are called (e.g. look through the grub config as above), you can tell XAPI exactly which image to use to boot your system.
Replace the examples below with your actual kernel/ramdisk:
export UUID=MYUUID #just in case, save the current values xe vm-param-get uuid=$UUID param-name=PV-bootloader-args xe vm-param-get uuid=$UUID param-name=PV-args # set the correct kernel image, init image, and root device per your specific machine xe vm-param-set uuid=$UUID PV-bootloader-args="--kernel=/vmlinuz-MYKERNEL --ramdisk=/initrd.img-MYKERNEL" xe vm-param-set uuid=$UUID PV-args="root=/dev/MYROOTDISK-root ro quiet"