Accepting request 822331 from devel:openSUSE:Factory
OBS-URL: https://build.opensuse.org/request/show/822331 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/shim-leap?expand=0&rev=12
This commit is contained in:
commit
ab0e6b5908
37
shim-install
37
shim-install
@ -1,5 +1,6 @@
|
|||||||
#! /bin/bash -e
|
#! /bin/bash -e
|
||||||
|
|
||||||
|
arch=`uname -m`
|
||||||
rootdir=
|
rootdir=
|
||||||
bootdir=
|
bootdir=
|
||||||
efidir=
|
efidir=
|
||||||
@ -10,8 +11,9 @@ no_nvram=no
|
|||||||
removable=no
|
removable=no
|
||||||
clean=no
|
clean=no
|
||||||
sysconfdir="/etc"
|
sysconfdir="/etc"
|
||||||
libdir="/usr/lib64"
|
libdir="/usr/lib64" # Beware, this is arch dependent!
|
||||||
source_dir="$libdir/efi"
|
datadir="/usr/share"
|
||||||
|
source_dir="${datadir}/efi/${arch}"
|
||||||
efibootmgr="/usr/sbin/efibootmgr"
|
efibootmgr="/usr/sbin/efibootmgr"
|
||||||
grub_probe="/usr/sbin/grub2-probe"
|
grub_probe="/usr/sbin/grub2-probe"
|
||||||
grub_mkrelpath="/usr/bin/grub2-mkrelpath"
|
grub_mkrelpath="/usr/bin/grub2-mkrelpath"
|
||||||
@ -23,7 +25,6 @@ update_boot=no
|
|||||||
def_grub_efi="${source_dir}/grub.efi"
|
def_grub_efi="${source_dir}/grub.efi"
|
||||||
def_boot_efi=
|
def_boot_efi=
|
||||||
|
|
||||||
arch=`uname -m`
|
|
||||||
if [ x${arch} = xx86_64 ] ; then
|
if [ x${arch} = xx86_64 ] ; then
|
||||||
grub_install_target="x86_64-efi"
|
grub_install_target="x86_64-efi"
|
||||||
def_boot_efi="bootx64.efi"
|
def_boot_efi="bootx64.efi"
|
||||||
@ -35,6 +36,12 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "${source_dir}" -o ! -e "${def_grub_efi}" ] ; then
|
||||||
|
# for outdated packages fall back to previous behavior
|
||||||
|
source_dir="$libdir/efi"
|
||||||
|
def_grub_efi="${source_dir}/grub.efi"
|
||||||
|
fi
|
||||||
|
|
||||||
# Get GRUB_DISTRIBUTOR.
|
# Get GRUB_DISTRIBUTOR.
|
||||||
if test -f "${sysconfdir}/default/grub" ; then
|
if test -f "${sysconfdir}/default/grub" ; then
|
||||||
. "${sysconfdir}/default/grub"
|
. "${sysconfdir}/default/grub"
|
||||||
@ -139,7 +146,17 @@ do
|
|||||||
no_nvram=yes ;;
|
no_nvram=yes ;;
|
||||||
|
|
||||||
--suse-enable-tpm)
|
--suse-enable-tpm)
|
||||||
source_grub_efi="/usr/lib/grub2/${grub_install_target}/grub-tpm.efi" ;;
|
# bsc#1174320 shim-install uses wrong paths for EFI files
|
||||||
|
# There are 3 possible locations of grub-tpm.efi and we will check them
|
||||||
|
# one by one.
|
||||||
|
if [ -e "${source_dir}/grub-tpm.efi" ]; then
|
||||||
|
source_grub_efi="${source_dir}/grub-tpm.efi"
|
||||||
|
elif [ -e "${datadir}/grub2/${grub_install_target}/grub-tpm.efi" ] ; then
|
||||||
|
source_grub_efi="${datadir}/grub2/${grub_install_target}/grub-tpm.efi"
|
||||||
|
else
|
||||||
|
source_grub_efi="/usr/lib/grub2/${grub_install_target}/grub-tpm.efi"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
--clean)
|
--clean)
|
||||||
clean=yes ;;
|
clean=yes ;;
|
||||||
@ -288,8 +305,13 @@ make_grubcfg () {
|
|||||||
grub_cfg_dirname=`dirname $grub_cfg`
|
grub_cfg_dirname=`dirname $grub_cfg`
|
||||||
grub_cfg_basename=`basename $grub_cfg`
|
grub_cfg_basename=`basename $grub_cfg`
|
||||||
cfg_fs_uuid=`"$grub_probe" --target=fs_uuid "$grub_cfg_dirname"`
|
cfg_fs_uuid=`"$grub_probe" --target=fs_uuid "$grub_cfg_dirname"`
|
||||||
|
# bsc#1153953 - Leap 42.3 boot error snapshot missing
|
||||||
|
# We have to check btrfs is used as root file system to enable relative path
|
||||||
|
# lookup for file to be on par with other utility which also accounts for it.
|
||||||
|
GRUB_FS="$(stat -f --printf=%T / || echo unknown)"
|
||||||
|
|
||||||
if test "x$SUSE_BTRFS_SNAPSHOT_BOOTING" = "xtrue"; then
|
if test "x$SUSE_BTRFS_SNAPSHOT_BOOTING" = "xtrue" &&
|
||||||
|
[ "x${GRUB_FS}" = "xbtrfs" ] ; then
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
set btrfs_relative_path="yes"
|
set btrfs_relative_path="yes"
|
||||||
EOF
|
EOF
|
||||||
@ -333,7 +355,10 @@ if test "$no_nvram" = no && test -n "$bootloader_id"; then
|
|||||||
efidir_disk="$("$grub_probe" --target=disk --device-map= "$efidir")"
|
efidir_disk="$("$grub_probe" --target=disk --device-map= "$efidir")"
|
||||||
if test -z "$efidir_drive" || test -z "$efidir_disk"; then
|
if test -z "$efidir_drive" || test -z "$efidir_disk"; then
|
||||||
echo "Can't find GRUB drive for $efidir; unable to create EFI Boot Manager entry." >&2
|
echo "Can't find GRUB drive for $efidir; unable to create EFI Boot Manager entry." >&2
|
||||||
elif [[ "$efidir_drive" == \(mduuid/* ]]; then
|
# bsc#1119762 If the MD device is partitioned, we just need to create one
|
||||||
|
# boot entry since the partitions are nested partitions and the mirrored
|
||||||
|
# partitions share the same UUID.
|
||||||
|
elif [[ "$efidir_drive" == \(mduuid/* && "$efidir_drive" != \(mduuid/*,* ]]; then
|
||||||
eval $(mdadm --detail --export "$efidir_disk" |
|
eval $(mdadm --detail --export "$efidir_disk" |
|
||||||
perl -ne 'print if m{^MD_LEVEL=}; push( @D, $1) if (m{^MD_DEVICE_\S+_DEV=(\S+)$});
|
perl -ne 'print if m{^MD_LEVEL=}; push( @D, $1) if (m{^MD_DEVICE_\S+_DEV=(\S+)$});
|
||||||
sub END() {print "MD_DEVS=\"", join( " ", @D), "\"\n";};')
|
sub END() {print "MD_DEVS=\"", join( " ", @D), "\"\n";};')
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 22 09:33:51 UTC 2020 - Gary Ching-Pang Lin <glin@suse.com>
|
||||||
|
|
||||||
|
- Update the path to grub-tpm.efi in shim-install (bsc#1174320)
|
||||||
|
- shim-install: add check for btrfs is used as root file system to enable
|
||||||
|
relative path lookup for file. (bsc#1153953)
|
||||||
|
- Update shim-install to handle the partitioned MD devices
|
||||||
|
(bsc#1119762, bsc#1119763)
|
||||||
|
- Update grub2 path in shim-install
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Mar 31 08:38:56 UTC 2020 - Gary Ching-Pang Lin <glin@suse.com>
|
Tue Mar 31 08:38:56 UTC 2020 - Gary Ching-Pang Lin <glin@suse.com>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user