From 1ca3ec59aeb6d70c7621bebe7ba2bf2fd38bbbf1 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Mon, 16 Aug 2021 21:19:20 +0200 Subject: [PATCH] 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. --- chroot-script | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 } -- 2.1.4