From 8da102c764dfa6c7e83dba33d0cf3be4e8c4d658 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 Subject: [PATCH] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: path:long-name:name where path is the path under the EFI directory on the ESP. This is in contrast to legacy OSes, where path is the device string. Handle this case. --- util/grub.d/30_os-prober.in | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in index 515a68c7aa0..9b8f5968e2d 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -328,8 +328,23 @@ EOF EOF ;; *) - # TRANSLATORS: %s is replaced by OS name. - gettext_printf "%s is not yet supported by grub-mkconfig.\n" " ${LONGNAME}" >&2 - ;; + case ${DEVICE} in + *.efi) + cat << EOF +menuentry '$(echo "${LONGNAME}" | grub_quote)' { +EOF + save_default_entry | grub_add_tab + cat << EOF + chainloader /EFI/${DEVICE} + boot +} +EOF + ;; + *) + echo -n " " + # TRANSLATORS: %s is replaced by OS name. + gettext_printf "%s is not yet supported by grub-mkconfig.\n" "${LONGNAME}" >&2 + ;; + esac esac done