This is more of a personal note.
Basically grub-install is deemed unnecessary now. If you use it, you will break secure boot. To restore your boot record, you can do
sudo dnf reinstall shim-* grub2-*
then if you also need to update your grub config, which you should not need normally
Fedora 33 and older:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Fedora 34 and newer:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
In case you have upgraded to Fedora 34 from an earlier version, you better use sudo rpmconf -a
to restore /boot/efi/EFI/fedora/grub.cfg
to the new default version.
While on it, I also learned about the efibootmgr
utility, appears interesting although I don't know what use one can have of it ¯\_(ツ)_/¯
Actually efibootmgr
can help in case you have a messed up boot entry that doesn't actually boot to grub or whatever boot manager (or UKI image) you desire.
# list current entries
sudo efibootmgr
# remove existing entry
sudoefibootmgr
-B -b 0
# create a new entrysudo efibootmgr --disk /dev/vnme0n1 --part 1 -L Fedora -l \EFI\fedora\grubx64.efi
# change boot order (you see current order with the first command)
sudo efibootmgr -o 0000,0001,001C,001D,001E,001F,0020,0021,0022,0023,0024,0025
Important: when performing the fixes above, make sure to use a Fedora live image or a netinst image in recovery mode lest you mess up selinux
labeling and machine fails to start with Failed to mount API filesystem
(as it happened to me). Then you will have to boot with enforce=0
kernel cmdline argument, then run fixfiles relabel
to fix that up.
Literature:
- Source of the information above is bug 1917213, check it for more details.
- Understanding Grub
- parted partitioning tool
- restore the /boot directory after deleting it