PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`#! /bin/sh # # Set a default boot entry for GRUB. # Copyright (C) 2004,2009 Free Software Foundation, Inc. # # GRUB is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # GRUB is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GRUB. If not, see . #set -eu # Initialize some variables. prefix=/usr exec_prefix=/usr sbindir=/usr/sbin bindir=/usr/bin sysconfdir="/etc" PACKAGE_NAME=GRUB PACKAGE_VERSION=2.03 datarootdir="/usr/share" datadir="/usr/share" if [ ! -v pkgdatadir ]; then pkgdatadir="${datadir}/grub" fi self=`basename $0` grub_get_kernel_settings="${sbindir}/grub2-get-kernel-settings" grub_editenv=${bindir}/grub2-editenv etcdefaultgrub=/etc/default/grub eval "$("${grub_get_kernel_settings}")" || true EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/' -e 's/\"//g') if [ -d /sys/firmware/efi/efivars/ ]; then startlink=/etc/grub2-efi.cfg grubdir=`echo "/boot/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` else startlink=/etc/grub2.cfg grubdir=`echo "/boot/grub2" | sed 's,//*,/,g'` fi blsdir=`echo "/boot/loader/entries" | sed 's,//*,/,g'` backupsuffix=.bak arch="$(uname -m)" export TEXTDOMAIN=grub export TEXTDOMAINDIR="${datarootdir}/locale" . "${pkgdatadir}/grub-mkconfig_lib" # Usage: usage # Print the usage. usage () { gettext_printf "Usage: %s\n" "$self" gettext "Switch to BLS config files.\n"; echo echo print_option_help "-h, --help" "$(gettext "print this message and exit")" print_option_help "-V, --version" "$(gettext "print the version information and exit")" echo print_option_help "--backup-suffix=$(gettext "SUFFIX")" "$backupsuffix" print_option_help "--bls-directory=$(gettext "DIR")" "$blsdir" print_option_help "--config-file=$(gettext "FILE")" "$startlink" print_option_help "--grub-defaults=$(gettext "FILE")" "$etcdefaultgrub" print_option_help "--grub-directory=$(gettext "DIR")" "$grubdir" # echo # gettext "Report bugs to ."; echo } argument () { opt=$1 shift if test $# -eq 0; then gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 exit 1 fi echo $1 } # Check the arguments. while test $# -gt 0 do option=$1 shift case "$option" in -h | --help) usage exit 0 ;; -V | --version) echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" exit 0 ;; --backup-suffix) backupsuffix=`argument $option "$@"` shift ;; --backup-suffix=*) backupsuffix=`echo "$option" | sed 's/--backup-suffix=//'` ;; --bls-directory) blsdir=`argument $option "$@"` shift ;; --bls-directory=*) blsdir=`echo "$option" | sed 's/--bls-directory=//'` ;; --config-file) startlink=`argument $option "$@"` shift ;; --config-file=*) startlink=`echo "$option" | sed 's/--config-file=//'` ;; --grub-defaults) etcdefaultgrub=`argument $option "$@"` shift ;; --grub-defaults=*) etcdefaultgrub=`echo "$option" | sed 's/--grub-defaults=//'` ;; --grub-directory) grubdir=`argument $option "$@"` shift ;; --grub-directory=*) grubdir=`echo "$option" | sed 's/--grub-directory=//'` ;; *) gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 usage exit 1 ;; esac done find_grub_cfg() { local candidate="" while [ -e "${candidate}" -o $# -gt 0 ] do if [ ! -e "${candidate}" ] ; then candidate="$1" shift fi if [ -L "${candidate}" ]; then candidate="$(realpath "${candidate}")" fi if [ -f "${candidate}" ]; then export GRUB_CONFIG_FILE="${candidate}" return 0 fi done return 1 } if ! find_grub_cfg ${startlink} ${grubdir}/grub.cfg ; then gettext_printf "Couldn't find config file\n" 1>&2 exit 1 fi if [ ! -d "${blsdir}" ]; then install -m 700 -d "${blsdir}" fi if [ -f /etc/machine-id ]; then MACHINE_ID=$(cat /etc/machine-id) else MACHINE_ID=$(dmesg | sha256sum) fi mkbls() { local kernelver=$1 && shift local datetime=$1 && shift local bootprefix=$1 && shift local debugname="" local debugid="" local flavor="" if [ "$kernelver" == *\+* ] ; then local flavor=-"${kernelver##*+}" if [ "${flavor}" == "-debug" ]; then local debugname=" with debugging" local debugid="-debug" fi fi ( source /etc/os-release cat <"${bls_target}" fi if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then bls_debug="$(echo ${bls_target} | sed -e "s/${kernelver}/${kernelver}~debug/")" cp -aT "${bls_target}" "${bls_debug}" title="$(grep '^title[ \t]' "${bls_debug}" | sed -e 's/^title[ \t]*//')" blsid="$(grep '^id[ \t]' "${bls_debug}" | sed -e "s/\.${ARCH}/-debug.${arch}/")" sed -i -e "s/^title.*/title ${title}${GRUB_LINUX_DEBUG_TITLE_POSTFIX}/" "${bls_debug}" sed -i -e "s/^id.*/${blsid}/" "${bls_debug}" sed -i -e "s/^options.*/options \$kernelopts ${GRUB_CMDLINE_LINUX_DEBUG}/" "${bls_debug}" fi done if [ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]; then mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" fi } GENERATE=0 if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then if ! sed -i"${backupsuffix}" \ -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=true,' \ "${etcdefaultgrub}" ; then gettext_printf "Updating %s failed\n" "${etcdefaultgrub}" exit 1 fi GENERATE=1 elif ! grep -q '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" ; then # prepend in case admins have been bad at newlines sed -i '1iGRUB_ENABLE_BLSCFG=true' "${etcdefaultgrub}" if ! grep -q '^GRUB_ENABLE_BLSCFG=true' "${etcdefaultgrub}" ; then gettext_printf "Updating %s failed\n" "${etcdefaultgrub}" exit 1 fi GENERATE=1 fi if [ "${GENERATE}" -eq 1 ] ; then copy_bls if [ $arch = "x86_64" ] && [ ! -d /sys/firmware/efi ]; then if ! cp ${prefix}/lib/grub//i386-pc/blscfg.mod ${grubdir}/i386-pc/ ; then exit 1 fi elif [ $arch = "ppc64" -o $arch = "ppc64le" ] && [ ! -d /sys/firmware/opal ]; then if ! cp ${prefix}/lib/grub/powerpc-ieee1275/blscfg.mod ${grubdir}/powerpc-ieee1275/ ; then exit 1 fi fi cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" sed -i"${backupsuffix}" \ -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=false,' \ "${etcdefaultgrub}" gettext_printf "Updating %s failed\n" "${GRUB_CONFIG_FILE}" exit 1 fi fi # Bye. exit 0