mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
Add a couple of documentation details about PV-GRUB support - the menu.lst content can be passed as a ramdisk. - virtual partitions are not supported. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
IOEMU stubdom
|
|
=============
|
|
|
|
This boosts HVM performance by putting ioemu in its own lightweight domain.
|
|
|
|
General Configuration
|
|
=====================
|
|
|
|
Due to a race between the creation of the IOEMU stubdomain itself and allocation
|
|
of video memory for the HVM domain, you need to avoid the need for ballooning,
|
|
by using the hypervisor dom0_mem= option for instance.
|
|
|
|
|
|
There is a sample configuration set in xmexample.hvm-stubdom
|
|
|
|
In your HVM config "hvmconfig" use stubdom-dm as dm script:
|
|
|
|
device_model = 'stubdom-dm'
|
|
|
|
|
|
To run
|
|
======
|
|
|
|
mkdir -p /exports/usr/share/xen/qemu
|
|
ln -s /usr/share/xen/qemu/keymaps /exports/usr/share/xen/qemu
|
|
mkdir -p /exports/var/lib
|
|
ln -s /var/lib/xen /exports/var/lib
|
|
/usr/sbin/fs-backend &
|
|
|
|
xm create hvmconfig
|
|
|
|
|
|
|
|
PV-GRUB
|
|
=======
|
|
|
|
This replaces pygrub to boot domU images safely: it runs the regular grub
|
|
inside the created domain itself and uses regular domU facilities to read the
|
|
disk / fetch files from network etc. ; it eventually loads the PV kernel and
|
|
chain-boots it.
|
|
|
|
Configuration
|
|
=============
|
|
|
|
In your PV config,
|
|
|
|
- use pv-grub.gz as kernel:
|
|
|
|
kernel = "pv-grub.gz"
|
|
|
|
- set the path to menu.lst, as seen from the domU, in extra:
|
|
|
|
extra = "(hd0,0)/boot/grub/menu.lst"
|
|
|
|
or you can provide the content of a menu.lst stored in dom0 by passing it as a
|
|
ramdisk:
|
|
|
|
ramdisk = "/boot/domU-1-menu.lst"
|
|
|
|
or you can also use a tftp path (dhcp will be automatically performed):
|
|
|
|
extra = "(nd)/somepath/menu.lst"
|
|
|
|
or you can set it in option 150 of your dhcp server and leave extra and ramdisk
|
|
empty (dhcp will be automatically performed)
|
|
|
|
Limitations
|
|
===========
|
|
|
|
- You can not boot a 64bit kernel with a 32bit-compiled PV-GRUB and vice-versa.
|
|
To cross-compile a 32bit PV-GRUB,
|
|
|
|
export XEN_TARGET_ARCH=x86_32
|
|
|
|
- bootsplash is supported, but the ioemu backend does not yet support restart
|
|
for use by the booted kernel.
|
|
|
|
- PV-GRUB doesn't support virtualized partitions. For instance:
|
|
|
|
disk = [ 'phy:hda7,hda7,w' ]
|
|
|
|
will be seen by PV-GRUB as (hd0), not (hd0,6), since GRUB will not see any
|
|
partition table.
|
|
|
|
|
|
Your own stubdom
|
|
================
|
|
|
|
By running
|
|
|
|
cd stubdom/
|
|
make c-stubdom
|
|
|
|
or
|
|
|
|
cd stubdom/
|
|
make caml-stubdom
|
|
|
|
you can compile examples of C or caml stub domain kernels. You can use these
|
|
and the relevant Makefile rules as basis to build your own stub domain kernel.
|
|
Available libraries are libc, libxc, libxs, zlib and libpci.
|