From 86fdefd6b0d447cd7d3d80f794fcd4df2aa96792 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 30 Aug 2012 15:27:50 +0800 Subject: [PATCH] fix Grub2 with SUSE Xen package install References: bnc#774666 Patch-Mainline: no This fixes Grub2 does not offer a Xen entry after installing hypervisor and tools, which is caused by install sequence of xen-kernel and xen is unpredictable. By judging the system is dom0 with xen kernel installed, the xen_list will be set to /boot/xen.gz if it's empty. Because the xen kernel would trigger the config updated prior to the xen package installation. --- util/grub.d/20_linux_xen.in | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in index fd103f1..6a7c1e6 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -171,6 +171,19 @@ file_is_not_sym () { xen_list=`for i in /boot/xen*.gz; do if grub_file_is_not_garbage "$i" && test ! -L "$i" ; then echo -n "$i " ; fi done` + +# bnc#774666 - Grub2 does not offer a Xen entry after installing hypervisor and tools +# This is a workaround to the install sequence of xen-kernel and xen is unpredictable +if [ "x${xen_list}" = "x" ] && +# If the code reaches here, it means that xen-kernel has been installed, but xen hypervisor +# is missing. This is not likely a sane condition for dom0. We assume this is xen-kernel +# triggers config update prior to the xen package. +# Test the system is dom0, if it is, we set the xen_list to /boot/xen.gz which should become +# available after xen package installed. + [ -e /proc/xen/xsd_port -o ! -e /proc/xen ]; then + xen_list="/boot/xen.gz" +fi + prepare_boot_cache= boot_device_id= -- 1.7.3.4