
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@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/