diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-10-12 04:00:49 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-10-12 04:00:49 +0000 |
| commit | c22f60e6e55f1bf300dd76d2222a93911f3b2bb2 (patch) | |
| tree | ef665e7018377f53612ac2751dcaea35a1c587b6 /pygrub-boot-legacy-sles.patch | |
| parent | 39a4763249cd6289e5019acfe0c98dbb169f5f2e (diff) | |
automatic import of xenopeneuler22.03_LTS
Diffstat (limited to 'pygrub-boot-legacy-sles.patch')
| -rw-r--r-- | pygrub-boot-legacy-sles.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/pygrub-boot-legacy-sles.patch b/pygrub-boot-legacy-sles.patch new file mode 100644 index 0000000..47aed22 --- /dev/null +++ b/pygrub-boot-legacy-sles.patch @@ -0,0 +1,63 @@ +Index: xen-4.13.0-testing/tools/pygrub/src/pygrub +=================================================================== +--- xen-4.13.0-testing.orig/tools/pygrub/src/pygrub ++++ xen-4.13.0-testing/tools/pygrub/src/pygrub +@@ -453,7 +453,7 @@ class Grub: + self.cf.filename = f + break + if self.__dict__.get('cf', None) is None: +- raise RuntimeError("couldn't find bootloader config file in the image provided.") ++ return + f = fs.open_file(self.cf.filename) + # limit read size to avoid pathological cases + buf = f.read(FS_READ_MAX) +@@ -628,6 +628,20 @@ def run_grub(file, entry, fs, cfg_args): + + g = Grub(file, fs) + ++ # If missing config or grub has no menu entries to select, look for ++ # vmlinuz-xen and initrd-xen in /boot ++ if g.__dict__.get('cf', None) is None or len(g.cf.images) == 0 or re.search(r"xen(-pae)?\.gz",g.cf.images[0].kernel[1]): ++ if not list_entries: ++ 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 g.__dict__.get('cf', None) is None: ++ raise RuntimeError("couldn't find bootloader config file in the image provided.") ++ else: ++ return ++ + if list_entries: + for i in range(len(g.cf.images)): + img = g.cf.images[i] +@@ -723,6 +737,19 @@ def sniff_netware(fs, cfg): + + return cfg + ++def sniff_xen_kernel(fs, cfg): ++ if not cfg["kernel"]: ++ if fs.file_exists('/boot/vmlinuz-xen'): ++ cfg["kernel"] = '/boot/vmlinuz-xen' ++ elif fs.file_exists('/boot/vmlinuz-xenpae'): ++ cfg["kernel"] = '/boot/vmlinuz-xenpae' ++ if cfg["kernel"] and not cfg["ramdisk"]: ++ if fs.file_exists('/boot/initrd-xen'): ++ cfg["ramdisk"] = '/boot/initrd-xen' ++ elif fs.file_exists('/boot/initrd-xenpae'): ++ cfg["ramdisk"] = '/boot/initrd-xenpae' ++ return cfg ++ + def format_sxp(kernel, ramdisk, args): + s = "linux (kernel %s)" % repr(kernel) + if ramdisk: +@@ -806,7 +833,7 @@ if __name__ == "__main__": + debug = False + not_really = False + output_format = "sxp" +- output_directory = "/var/run/xen/pygrub" ++ output_directory = "/var/run/xen" + + # what was passed in + incfg = { "kernel": None, "ramdisk": None, "args": "" } |
