35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
|
Index: xen-4.3.0-testing/tools/pygrub/src/pygrub
|
||
|
===================================================================
|
||
|
--- xen-4.3.0-testing.orig/tools/pygrub/src/pygrub
|
||
|
+++ xen-4.3.0-testing/tools/pygrub/src/pygrub
|
||
|
@@ -606,6 +606,14 @@ def run_grub(file, entry, fs, cfg_args):
|
||
|
print " args: %s" % img.args
|
||
|
print " initrd: %s" % img.initrd[1]
|
||
|
|
||
|
+ # If grub has no menu entries to select, look for vmlinuz-xen and initrd-xen in /boot
|
||
|
+ if len(g.cf.images) == 0:
|
||
|
+ chosencfg = { "kernel": None, "ramdisk": None, "args": "" }
|
||
|
+ chosencfg = sniff_xen_kernel(fs, incfg)
|
||
|
+ if chosencfg["kernel"] and chosencfg["ramdisk"]:
|
||
|
+ chosencfg["args"] = cfg_args
|
||
|
+ return chosencfg
|
||
|
+
|
||
|
if interactive and not list_entries:
|
||
|
curses.wrapper(run_main)
|
||
|
else:
|
||
|
@@ -692,6 +700,14 @@ def sniff_netware(fs, cfg):
|
||
|
|
||
|
return cfg
|
||
|
|
||
|
+def sniff_xen_kernel(fs, cfg):
|
||
|
+ if not cfg["kernel"] and fs.file_exists('/boot/vmlinuz-xen'):
|
||
|
+ cfg["kernel"] = '/boot/vmlinuz-xen'
|
||
|
+ if cfg["kernel"] and not cfg["ramdisk"]:
|
||
|
+ if fs.file_exists('/boot/initrd-xen'):
|
||
|
+ cfg["ramdisk"] = '/boot/initrd-xen'
|
||
|
+ return cfg
|
||
|
+
|
||
|
def format_sxp(kernel, ramdisk, args):
|
||
|
s = "linux (kernel %s)" % kernel
|
||
|
if ramdisk:
|