修复丢失的Linux EFI引导项

也不知道是什么原因,安装在电脑上的Fedora突然不见了。如果是以前的MBR引导方式,出现这种情况往往是因为引导器被覆盖为Windows,只需要重新安装GRUB引导器即可。但现在使用的是EFI方式引导,所以修复的方法也就不一样了。
我遇到的是EFI中Fedora引导项消失的问题,在修复的尝试中发现EFI分区中还是有Fedora的Grub,所以只需要创建Fedora的EFI引导项即可。我使用了一张LiveCD引导了一个Linux,然后加载了Linux分区:

mount /dev/sda4 /mnt    // 加载root根目录
mount /dev/sda3 /mnt/boot    // 加载boot目录

如果没有grub-efi需要安装grub-efi包:

yum install grub2-efi

创建Fedora EFI引导项,并且将loader指向正确的引导器位置:

efibootmgr -c --disk /dev/sda --part 2 -l \\EFI\\FEDORA\\GRUBX64.EFI -L "Fedora Linux"    // --part 2是指向EFI的分区区号,-l \\EFI\\FEDORA\\GRUBX64.EFI是指向这个盘中的GRUB EFI引导器。 这两个参数应该根据实际情况修正,否则虽然出现了EFI引导项,但会显示为Drive not presented错误.

然后重起就可以看到Fedora的引导项了。