我刚刚在带有 EFI 的笔记本电脑上安装了 fedora 30。之前安装的是Windows,安装完fedora后,开机就消失了。我确信 Fedora 已正确安装,因为当我尝试重新安装它时,我看到了它的引导加载程序(在分区部分)。现在黑屏上只有一条消息:
重新启动并选择正确的启动设备或将启动介质插入选定的启动设备并按一个键
我尝试更改 BIOS 设置。但 Fedora 没有启动选项。我应该如何解决这个问题?
更新:我重新安装了 fedora,问题得到解决。然而,问题仍然存在。有没有办法解决这个问题而不需要重新安装?
答案1
我无法发表评论,所以让我将其发布为很快就会被删除的答案:我上周遇到了完全相同的问题。您是否以 UEFI 模式安装 Windows,以 Legacy 模式安装 Fedora,或者反之亦然?
答案2
看起来 UEFI NVRAM 启动变量被某种方式删除了。有多种方法可以在不重新安装的情况下恢复。
最简单的可能是在救援模式下从 Fedora 安装介质启动(在 UEFI 模式下),chroot 到现有安装,然后运行grub2-install
.这将重写 EFI 系统分区中的 GRUB 引导加载程序(+ 安全引导填充程序,如果已安装)(在本例中是不必要的,但不会造成损害),并重新创建指向它的 NVRAM 引导变量(这是实际的修复)。
如果您希望将来从类似情况中恢复起来更加容易,并且不是双引导,则可以添加该--force-extra-removable
选项。这将添加 GRUB 引导加载程序/安全引导垫片的第二个副本/boot/efi/EFI/BOOT/BOOTx64.efi
,即 64 位 x86 硬件的 UEFI 可移动媒体/后备引导路径:如果没有有效的 NVRAM 引导变量,或者您使用 BIOS 菜单来告诉系统在 UEFI 模式下从特定磁盘启动,系统固件将寻找此路径。
另一种方法是从任何允许您使用该命令的 Linux 介质启动efibootmgr
。这样,您可以使用如下命令重建引导变量:
efibootmgr -c -d /dev/sdX -p Y -l \\EFI\\fedora\\shimx64.efi -L Fedora
在哪里:
/dev/sdX
是包含 EFI 系统分区 (ESP) 的磁盘Y
是你的ESP的分区号\\EFI\\fedora\\shimx64.efi
是固件应加载的引导加载程序 .efi 文件的路径,表示为从 ESP 分区的根目录开始的 Windows 样式路径名。反斜杠是双倍的,因为单个反斜杠是 Unix 风格 shell 的特殊转义字符。- 并且
Fedora
只是在 BIOS 菜单中可见的人类可读标签。