grub2/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch
Javier Martinez Canillas afb0baacd6
Use BLS fragment filename as menu entry id and for sort criterion
The BLS config filenames are guaranteed to be unique, so they can be
used as GRUB2 entry id and can also be used to sort the menu entries.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-07-02 17:33:09 +02:00

77 lines
2.2 KiB
Diff

From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 27 Oct 2014 09:22:55 -0400
Subject: [PATCH 127/250] Try to emit linux16/initrd16 and linuxefi/initrdefi
in 30-os_prober.
Resolves: rhbz#1108296
Signed-off-by: Peter Jones <pjones@redhat.com>
---
util/grub.d/30_os-prober.in | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
index 9b8f5968e2d..dc98eace934 100644
--- a/util/grub.d/30_os-prober.in
+++ b/util/grub.d/30_os-prober.in
@@ -141,6 +141,28 @@ for OS in ${OSPROBED} ; do
# os-prober returns text string followed by optional counter
CLASS="--class $(echo "${LABEL}" | LC_ALL=C sed 's,[[:digit:]]*$,,' | cut -d' ' -f1 | tr 'A-Z' 'a-z' | LC_ALL=C sed 's,[^[:alnum:]_],_,g')"
+ sixteenbit=""
+ linuxefi="linux"
+ initrdefi="initrd"
+ case "$machine" in
+ i?86|x86_64)
+ sixteenbit="16"
+ linuxefi="linuxefi"
+ initrdefi="initrdefi"
+ ;;
+ aarch64)
+ linuxefi="linux"
+ initrdefi="initrd"
+ esac
+ linux="linux${sixteenbit}"
+ initrd="initrd${sixteenbit}"
+ # there's no way to tell that the /other/ os is booting through UEFI,
+ # but if we are it's an okay bet...
+ if [ -d /sys/firmware/efi ]; then
+ linux=$linuxefi
+ initrd=$initrdefi
+ fi
+
gettext_printf "Found %s on %s\n" "${LONGNAME}" "${DEVICE}" >&2
case ${BOOT} in
@@ -241,11 +263,11 @@ EOF
save_default_entry | grub_add_tab
printf '%s\n' "${prepare_boot_cache}"
cat << EOF
- linux ${LKERNEL} ${LPARAMS}
+ ${linux} ${LKERNEL} ${LPARAMS}
EOF
if [ -n "${LINITRD}" ] ; then
cat << EOF
- initrd ${LINITRD}
+ ${initrd} ${LINITRD}
EOF
fi
cat << EOF
@@ -261,11 +283,11 @@ EOF
save_default_entry | sed -e "s/^/$grub_tab$grub_tab/"
printf '%s\n' "${prepare_boot_cache}" | grub_add_tab
cat << EOF
- linux ${LKERNEL} ${LPARAMS}
+ ${linux} ${LKERNEL} ${LPARAMS}
EOF
if [ -n "${LINITRD}" ] ; then
cat << EOF
- initrd ${LINITRD}
+ ${initrd} ${LINITRD}
EOF
fi
cat << EOF
--
2.17.1