efivars is gone with Debian/bullseye #newinbullseye
Continuing with #newinbullseye, it’s worth being aware of, that efivars is gone with the kernel version shipped as of Debian/bullseye.
Quoting from wiki.debian.org/UEFI:
The Linux kernel gives access to the UEFI configuration variables via a set of files under /sys, using two different interfaces.
The older interface was showing files under /sys/firmware/efi/vars, and this is what was used by default in both Wheezy and Jessie.
The new interface is efivarfs, which will expose things in a slightly different format under /sys/firmware/efi/efivars.
This is the new preferred way of using UEFI configuration variables, and Debian switched to it by default from Stretch onwards.
Now, CONFIG_EFI_VARS
is no longer enabled in Debian due to commit 20146398c4 (shipped as such with Debian kernel package versions >=5.10.1-1~exp1).
As a result, the kernel module efivars
is no longer available on systems running Debian kernels >=5.10 (which includes Debian/bullseye). Now, when running such a system in EFI mode, chroot
-ing into a system and executing e.g. efibootmgr
, it might fail with:
# efibootmgr EFI variables are not supported on this system.
This is caused by /sys/firmware/efi/vars
no longer being available, because of the disabled CONFIG_EFI_VARS
. To get this working again, you need to make efivarfs available via:
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars
Then efibootmgr
and further tools relying on efivars
should work again.
FYI: if you’re a user of Grml’s grml-chroot
tool, this is going to be handled out of the box for you.