I recently wrote a blog post on using grub 2 as a Xen PV bootloader for work. See Using Grub 2 as a bootloader for Xen PV guests over on https://blog.xenproject.org.
Rather than repeat the whole thing here I'll just briefly cover the stuff which is of interest for Debian users (if you want all full background and the stuff on building grub from source etc then see the original post).
TL;DR: With Jessie, install grub-xen-host in your domain 0 and grub-xen in your PV guests then in your guest configuration, depending on whether you want a 32- or 64-bit PV guest write either:
kernel = "/usr/lib/grub-xen/grub-i386-xen.bin"
or
kernel = "/usr/lib/grub-xen/grub-x86_64-xen.bin"
(instead of bootloader = ...
or other kernel = ...
, also omit
ramdisk = ...
and any command line related stuff (e.g. root = ...
,
extra = ...
, cmdline = ...
) and your guests will boot using Grub
2, much like on native.
In slightly more detail:
The forthcoming Debian 8.0 (Jessie) release will contain support
for both host and guest pvgrub2
. This was added in version
2.02~beta2-17
of the package (bits were present before then, but
-17
ties it all together).
The package grub-xen-host
contains grub binaries
configured for the host, these will attempt to chainload an in-guest
grub image (following the Xen x86 PV Bootloader Protocol) and fall back to
searching for a grub.cfg in the guest filesystems. grub-xen-host
is
Recommended
by the Xen meta-packages in Debian or can be installed
by hand.
The package grub-xen-bin
contains the grub binaries
for both the i386-xen
and x86_64-xen
platforms, while the
grub-xen
package integrates this into the running system
by providing the actual pvgrub2 image (i.e. running grub-install
at
the appropriate times to create an image tailored to the system) and
integration with the kernel packages (i.e. running update-grub
at
the right times), so it is the grub-xen
which should be installed in
Debian guests.
At this time the grub-xen
package is not installed in a guest
automatically so it will need to be done manually (something which
perhaps could be addressed for Stretch).