一开始一切都很好,我的 SSD 有 2 个 EFI 分区,我通常使用 f12 键在操作系统之间切换,保持 Linux 为默认值。但是,在我清除 NVRAM 后,Windows 启动管理器在那里,但 Linux EFI 消失了。如何将其添加回启动菜单?
一开始一切都很好,我的 SSD 有 2 个 EFI 分区,我通常使用 f12 键在操作系统之间切换,保持 Linux 为默认值。但是,在我清除 NVRAM 后,Windows 启动管理器在那里,但 Linux EFI 消失了。如何将其添加回启动菜单?
\EFI\boot\bootx64.efi
我猜想 Windows 启动管理器也消失了,但是 UEFI 固件包含自动将其添加回来的代码,或者 Windows 首先使用备用UEFI引导加载程序路径 (自愈”操作。使用可引导UEFI 本机模式的 Linux 实时引导媒体最容易解决此问题。这将允许您使用该
efibootmgr
命令。从 live 媒体启动 Linux 后,您应该首先将 Linux 安装的 EFI 系统分区(简称 ESP)挂载到 Linux 发行版的惯用位置(通常是
/boot/efi
,但有些发行版可能只使用/boot
)。然后,您应该在该目录中找到 UEFI 引导加载程序目录/boot/efi/EFI/<name of your Linux distribution>/
以及类似shimx64.efi
和/或类似bootx64.efi
的文件。很可能还有其他文件。如果 bootloader 目录包含
shimx64.efi
,则作为<bootloader file>
下一步使用;如果没有,grubx64.efi
如果存在就使用。假设 Linux ESP 位于磁盘上
/dev/sda
,efibootmgr
重新创建固件菜单的引导条目的命令将是:由于您在同一个磁盘上有多个 ESP,因此您可能必须指定正确的 ESP 设备名称,而不是仅指定磁盘(即类似于
-d /dev/sda5
而不是仅指定-d /dev/sda
)。之后,使用
efibootmgr -v
来查看启动设置。您可能需要efibootmgr --bootorder
调整引导顺序以使 Linux 成为默认设置,或者访问 BIOS 设置以执行相同操作(某些 UEFI 固件可能会拒绝使用完成的引导顺序更改efibootmgr --bootorder
- 这可能是固件错误)。如果您想让 Linux 在 NVRAM 重置时成为“幸存者操作系统”,您可以在
--force-extra-removable
成功启动操作系统后使用该选项重新安装 UEFI GRUB,使用如下命令:(如果您在系统上禁用了安全启动,并计划将其保持禁用状态,您可以根据需要省略该
--uefi-secure-boot
选项。)