Using pyGRUB on Wheezy to boot a domU kernel
Using pyGRUB from xen-utils-4.0, each domU can boot with its own kernel instead of using the dom0 kernel, which makes life easier for updates and multi distribution Xen installs. You need to have first a working domU. The domU FileSystem needs to be ext[234].
On the dom0
You need to have the system partition as the first partition listed in your domU.cfg disklist.
Config snippet:
root = '/dev/xvda2 ro' disk = [ 'phy:/dev/vg05/test2.openforce.com-disk,xvda2,w', 'phy:/dev/vg05/test2.openforce.com-swap,xvda1,w', ]
On the domU
Make sure /etc/fstab refers to the mount points /dev/xvda{1,2}
Install a standard linux-image-amd64 kernel (since Xen support is in mainline Linux since Linux 2.6.37)
mkdir /boot/grub apt-get install linux-image-amd64
You don't need to install grub, you just need to create a simple grub config file which will be read by pygrub on the Dom0.
Create first /boot/grub/menu.lst based on the content of /boot/.
cat > /boot/grub/menu.lst << EOF default 0 timeout 2 title Debian GNU/Linux root (hd0,0) kernel /vmlinuz root=/dev/xvda2 ro initrd /initrd.img title Debian GNU/Linux (recovery mode) root (hd0,0) kernel /vmlinuz root=/dev/xvda2 ro single initrd /initrd.img EOF
On the dom0
- Check that grub was properly installed on the domU with
/usr/lib/xen-default/bin/pygrub /dev/vg02/my_domU-disk
which should great with the familiar grub menu, and then abort
Replace the kernel and ramdisk parameters in the domU config file with the following line.
bootloader = '/usr/lib/xen-default/bin/pygrub'
find correct pygrub binary if /usr/lib/xen-default/bin/pygrub is missing
# show current xen version (use xl or xm) $ xl info | grep xen_version xen_version : 4.4.1 # find available pygrub binaries $ find /usr/lib/xen* -name pygrub /usr/lib/xen-4.4/bin/pygrub