From: Michael Prokop Date: Mon, 16 Aug 2021 19:19:20 +0000 (+0200) Subject: EFI support: fix for grub-install usage with efivarfs X-Git-Tag: v0.99~2 X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=commitdiff_plain;h=1ca3ec59aeb6d70c7621bebe7ba2bf2fd38bbbf1;hp=86f83aa4b5047fafa74ef003d2da70bf1eeb50a7 EFI support: fix for grub-install usage with efivarfs We had to apply fixes due to efivars vs efivarfs in Debian kernel versions >=5.10, and addressed them in commit d91d9f3ef. Those changes were incomplete though: while efibootmgr was invoked in the according and expected environment, invocation of grub-install doesn't reliably work (as at that time /sys/firmware/efi/efivars is no longer accessible). GRUB installation on EFI systems without /sys/firmware/efi/efivars present warns with (also see https://sources.debian.org/src/grub2/2.04-20/debian/patches/efi-variable-storage-minimise-writes.patch/?hl=650#L650): | EFI variables are not supported on this system But it returns with exit code 0. This leaves us with an incomplete and therefore not booting GRUB EFI environment. Fix it by unmounting /sys/firmware/efi/efivars only from within our final stage. --- diff --git a/chroot-script b/chroot-script index 8104df1..e59b829 100755 --- a/chroot-script +++ b/chroot-script @@ -604,9 +604,6 @@ efi_setup() { echo "Invoking efibootmgr" efibootmgr || return 1 - - umount /sys/firmware/efi/efivars &>/dev/null || true - } # grub configuration/installation {{{ @@ -725,6 +722,8 @@ finalize() { [ -n "$POLICYRCD" ] && rm -f /usr/sbin/policy-rc.d + umount /sys/firmware/efi/efivars &>/dev/null || true + umount /sys >/dev/null 2>/dev/null || true umount /proc >/dev/null 2>/dev/null || true }