Notes related to Extensible Firmware Interface (EFI).

Repair for Linux

To reinstall UEFI entries, check what's installed with efibootmgr --verbose which will list all boot entries, and the default. If the entry for the OS is missing (usually "debian" or "ubuntu"), the entry may need to be re-added. Rather than manipulating EFI variables, it's easiest to reinstall grub which ensures all files/etc are in the right place.

If using a chroot to reinstall entries, first setup various bind mounts outside the chroot:

CHROOT_ROOT=/mnt
mount --bind /dev/ $CHROOT_ROOT/dev
mount --bind /dev/pts $CHROOT_ROOT/dev/pts
mount --bind /sys $CHROOT_ROOT/sys
mount --bind /proc $CHROOT_ROOT/proc
mount --bind /run $CHROOT_ROOT/run

modprobe efivarfs
mount -o bind /sys/firmware/efi $CHROOT_ROOT/sys/firmware/efi

Also ensure the EFI partition is mounted at the correct location (e.g. usually /boot/efi).

After entering the chroot, reinstall grub with:

grub-install --target=x86_64-efi --efi-directory=/boot/efi 

Afterwards, double-check the boot entry shows up with efibootmgr.


CategoryCheatSheet