53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch - bnc#862608 - SLES 11 SP3 vm-install should get RHEL 7 support when released 53206661-pygrub-support-linux16-and-initrd16.patch - Upstream bug fixes 53299d8f-xenconsole-reset-tty-on-failure.patch 53299d8f-xenconsole-tolerate-tty-errors.patch - fix build for armv7l and aarch64 - Remove compiletime strings from qemu-upstream qemu-xen-upstream-megasas-buildtime.patch - bnc#871546 - KMPs are not signed in SUSE:SLE-12:GA? xen.spec - Upstream patches from Jan 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch - Drop xsa89.patch for upstream version (see bnc#867910, 5331917d-x86-enforce...) OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=309
166 lines
5.6 KiB
Diff
166 lines
5.6 KiB
Diff
Subject: xen/pygrub: grub2/grub.cfg from RHEL 7 has new commands in menuentry
|
|
From: Joby Poriyath joby.poriyath@citrix.com Tue Feb 4 18:10:35 2014 +0000
|
|
Date: Wed Mar 12 13:51:29 2014 +0000:
|
|
Git: dd03048708af072374963d6d0721cc6d4c5f52cf
|
|
|
|
menuentry in grub2/grub.cfg uses linux16 and initrd16 commands
|
|
instead of linux and initrd. Due to this RHEL 7 (beta) guest failed to
|
|
boot after the installation.
|
|
|
|
In addition to this, RHEL 7 menu entries have two different single-quote
|
|
delimited strings on the same line, and the greedy grouping for menuentry
|
|
parsing gets both strings, and the options inbetween.
|
|
|
|
Signed-off-by: Joby Poriyath <joby.poriyath@citrix.com>
|
|
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
|
Acked-by: Ian Campbell <ian.campbell@citrix.com>
|
|
Cc: george.dunlap@citrix.com
|
|
|
|
diff --git a/tools/pygrub/examples/rhel-7-beta.grub2 b/tools/pygrub/examples/rhel-7-beta.grub2
|
|
new file mode 100644
|
|
index 0000000..88f0f99
|
|
--- /dev/null
|
|
+++ b/tools/pygrub/examples/rhel-7-beta.grub2
|
|
@@ -0,0 +1,118 @@
|
|
+#
|
|
+# DO NOT EDIT THIS FILE
|
|
+#
|
|
+# It is automatically generated by grub2-mkconfig using templates
|
|
+# from /etc/grub.d and settings from /etc/default/grub
|
|
+#
|
|
+
|
|
+### BEGIN /etc/grub.d/00_header ###
|
|
+set pager=1
|
|
+
|
|
+if [ -s $prefix/grubenv ]; then
|
|
+ load_env
|
|
+fi
|
|
+if [ "${next_entry}" ] ; then
|
|
+ set default="${next_entry}"
|
|
+ set next_entry=
|
|
+ save_env next_entry
|
|
+ set boot_once=true
|
|
+else
|
|
+ set default="${saved_entry}"
|
|
+fi
|
|
+
|
|
+if [ x"${feature_menuentry_id}" = xy ]; then
|
|
+ menuentry_id_option="--id"
|
|
+else
|
|
+ menuentry_id_option=""
|
|
+fi
|
|
+
|
|
+export menuentry_id_option
|
|
+
|
|
+if [ "${prev_saved_entry}" ]; then
|
|
+ set saved_entry="${prev_saved_entry}"
|
|
+ save_env saved_entry
|
|
+ set prev_saved_entry=
|
|
+ save_env prev_saved_entry
|
|
+ set boot_once=true
|
|
+fi
|
|
+
|
|
+function savedefault {
|
|
+ if [ -z "${boot_once}" ]; then
|
|
+ saved_entry="${chosen}"
|
|
+ save_env saved_entry
|
|
+ fi
|
|
+}
|
|
+
|
|
+function load_video {
|
|
+ if [ x$feature_all_video_module = xy ]; then
|
|
+ insmod all_video
|
|
+ else
|
|
+ insmod efi_gop
|
|
+ insmod efi_uga
|
|
+ insmod ieee1275_fb
|
|
+ insmod vbe
|
|
+ insmod vga
|
|
+ insmod video_bochs
|
|
+ insmod video_cirrus
|
|
+ fi
|
|
+}
|
|
+
|
|
+terminal_output console
|
|
+set timeout=5
|
|
+### END /etc/grub.d/00_header ###
|
|
+
|
|
+### BEGIN /etc/grub.d/10_linux ###
|
|
+menuentry 'Red Hat Enterprise Linux Everything, with Linux 3.10.0-54.0.1.el7.x86_64' --class red --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.10.0-54.0.1.el7.x86_64-advanced-d23b8b49-4cfe-4900-8ef1-ec80bc633163' {
|
|
+ load_video
|
|
+ set gfxpayload=keep
|
|
+ insmod gzio
|
|
+ insmod part_msdos
|
|
+ insmod xfs
|
|
+ set root='hd0,msdos1'
|
|
+ if [ x$feature_platform_search_hint = xy ]; then
|
|
+ search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 89ffef78-82b3-457c-bc57-42cccc373851
|
|
+ else
|
|
+ search --no-floppy --fs-uuid --set=root 89ffef78-82b3-457c-bc57-42cccc373851
|
|
+ fi
|
|
+ linux16 /vmlinuz-3.10.0-54.0.1.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/swap vconsole.keymap=uk crashkernel=auto rd.lvm.lv=rhel/root vconsole.font=latarcyrheb-sun16 LANG=en_GB.UTF-8
|
|
+ initrd16 /initramfs-3.10.0-54.0.1.el7.x86_64.img
|
|
+}
|
|
+menuentry 'Red Hat Enterprise Linux Everything, with Linux 0-rescue-af34f0b8cf364cdbbe6d093f8228a37f' --class red --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-0-rescue-af34f0b8cf364cdbbe6d093f8228a37f-advanced-d23b8b49-4cfe-4900-8ef1-ec80bc633163' {
|
|
+ load_video
|
|
+ insmod gzio
|
|
+ insmod part_msdos
|
|
+ insmod xfs
|
|
+ set root='hd0,msdos1'
|
|
+ if [ x$feature_platform_search_hint = xy ]; then
|
|
+ search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 89ffef78-82b3-457c-bc57-42cccc373851
|
|
+ else
|
|
+ search --no-floppy --fs-uuid --set=root 89ffef78-82b3-457c-bc57-42cccc373851
|
|
+ fi
|
|
+ linux16 /vmlinuz-0-rescue-af34f0b8cf364cdbbe6d093f8228a37f root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/swap vconsole.keymap=uk crashkernel=auto rd.lvm.lv=rhel/root vconsole.font=latarcyrheb-sun16
|
|
+ initrd16 /initramfs-0-rescue-af34f0b8cf364cdbbe6d093f8228a37f.img
|
|
+}
|
|
+
|
|
+### END /etc/grub.d/10_linux ###
|
|
+
|
|
+### BEGIN /etc/grub.d/20_linux_xen ###
|
|
+### END /etc/grub.d/20_linux_xen ###
|
|
+
|
|
+### BEGIN /etc/grub.d/20_ppc_terminfo ###
|
|
+### END /etc/grub.d/20_ppc_terminfo ###
|
|
+
|
|
+### BEGIN /etc/grub.d/30_os-prober ###
|
|
+### END /etc/grub.d/30_os-prober ###
|
|
+
|
|
+### BEGIN /etc/grub.d/40_custom ###
|
|
+# This file provides an easy way to add custom menu entries. Simply type the
|
|
+# menu entries you want to add after this comment. Be careful not to change
|
|
+# the 'exec tail' line above.
|
|
+### END /etc/grub.d/40_custom ###
|
|
+
|
|
+### BEGIN /etc/grub.d/41_custom ###
|
|
+if [ -f ${config_directory}/custom.cfg ]; then
|
|
+ source ${config_directory}/custom.cfg
|
|
+elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
|
|
+ source $prefix/custom.cfg;
|
|
+fi
|
|
+### END /etc/grub.d/41_custom ###
|
|
diff --git a/tools/pygrub/src/GrubConf.py b/tools/pygrub/src/GrubConf.py
|
|
index cb853c9..974cded 100644
|
|
--- a/tools/pygrub/src/GrubConf.py
|
|
+++ b/tools/pygrub/src/GrubConf.py
|
|
@@ -348,7 +348,9 @@ class Grub2Image(_GrubImage):
|
|
|
|
commands = {'set:root': 'root',
|
|
'linux': 'kernel',
|
|
+ 'linux16': 'kernel',
|
|
'initrd': 'initrd',
|
|
+ 'initrd16': 'initrd',
|
|
'echo': None,
|
|
'insmod': None,
|
|
'search': None}
|
|
@@ -394,7 +396,7 @@ class Grub2ConfigFile(_GrubConfigFile):
|
|
continue
|
|
|
|
# new image
|
|
- title_match = re.match('^menuentry ["\'](.*)["\'] (.*){', l)
|
|
+ title_match = re.match('^menuentry ["\'](.*?)["\'] (.*){', l)
|
|
if title_match:
|
|
if img is not None:
|
|
raise RuntimeError, "syntax error: cannot nest menuentry (%d %s)" % (len(img),img)
|