Hello Kiri,
Am Montag 31 Oktober 2011 15:15:12 schrieb Jiri Denemark:
Is there any way you can pass the exact order to Xen?
Not that I know of. This is one of the corner cases, which is only relevant if
you have a Xen-PV domain AND are using PyGrub as the boot-loader. For HV the
flag is unused and for direct kernel boot you don't need it either. Only for
PV+bootloader needs Xend a way to find the disk containing the kernel.
In xen-4.1/tools/python/xen/xend/XendDomainInfo.py:3234 _configureBootloader()
build a list of all vbds marked bootable and passes only the first one to
Pygrub. Technically you mark multiple disks as bootable, but the flag is only
set in xen-4.1/tools/python/xen/xend/XendConfig.py:1498 device_add(), which
does this exactly once for the first disk added.
Multiple devices with
bootIndex are allowed (the indexes are unique of course) to specify booting
preference and by setting (bootable 1) anytime bootIndex != 0 makes all
such devices bootable in unspecified order.
Same with Xen — I thinks: If you mark multiple disks as bootable, the first
disk gets used — whichever that is.
If only one bootable device is
supported by Xen, you should probably emit (bootable 1) only for bootIndex
= 1 and maybe even forbid more than one device with bootIndex.
This makes perfect sense for libvirt → xen, since we want determinictic
behaviour.
But if multiple disk are marked bootable, converting xen → libvirtd either has
to pick one disk and report just that disk as bootable; or reports all disks
marked as bootable.
Either way, round-trip is broken. I wish XenLight would be useable.
You also need to add 'deviceboot' feature to guest
capabilities XML so that
apps know they can use <boot order='n'/> when creating this kind of guests.
Will have a look.
Sincerely
Philipp
--
Philipp Hahn Open Source Software Engineer hahn(a)univention.de
Univention GmbH Linux for Your Business fon: +49 421 22 232- 0
Mary-Somerville-Str.1 D-28359 Bremen fax: +49 421 22 232-99
http://www.univention.de/