#!/usr/bin/env bash ######################################################## # This script generates a UEFI Shell entry on grub.cfg # # if UEFI Shell is installed on the system. # ######################################################## prefix="/usr" exec_prefix="${prefix}" datarootdir="/usr/share" datadir="${datarootdir}" . "${datadir}/grub/grub-mkconfig_lib" UEFISHELL_IMAGE="/usr/share/edk2-shell/x64/Shell_Full.efi" CLASS="--class uefishell --class gnu --class tool" if [ -e "${UEFISHELL_IMAGE}" ] && is_path_readable_by_grub "${UEFISHELL_IMAGE}" ; then ## image exists, create menu entry echo "Found UEFI Shell EFI image: ${UEFISHELL_IMAGE}" >&2 _GRUB_UEFISHELL_HINTS_STRING="$(${grub_probe} --target=hints_string ${UEFISHELL_IMAGE})" _GRUB_UEFISHELL_FS_UUID="$(${grub_probe} --target=fs_uuid ${UEFISHELL_IMAGE})" _GRUB_UEFISHELL_REL_PATH="$(make_system_path_relative_to_its_root ${UEFISHELL_IMAGE})" cat << EOF if [ "\${grub_platform}" == "efi" ]; then menuentry "UEFI Shell" ${CLASS} { search --fs-uuid --no-floppy --set=root ${_GRUB_UEFISHELL_HINTS_STRING} ${_GRUB_UEFISHELL_FS_UUID} chainloader ${_GRUB_UEFISHELL_REL_PATH} } fi EOF fi