NVRAM 重置后将 EFI 分区添加到 BIOS 菜单

NVRAM 重置后将 EFI 分区添加到 BIOS 菜单

一开始一切都很好,我的 SSD 有 2 个 EFI 分区,我通常使用 f12 键在操作系统之间切换,将 Linux 保留为默认设置。但是,在我清除 NVRAM 后,Windows 启动管理器还在,但 Linux EFI 消失了。如何将其重新添加到启动菜单?

答案1

我猜测 Windows 启动管理器也消失了,但要么 UEFI 固件包含自动将其添加回来的代码,要么 Windows 首先使用后备 UEFI 引导加载程序路径 ( \EFI\boot\bootx64.efi) 启动,并将正确的 NVRAM 启动变量添加回来作为全自动“自我修复”操作。

使用可启动的 Linux 实时启动媒体来修复这个问题是最容易的UEFI 原生模式。这样您就可以使用该efibootmgr命令。

从实时媒体启动 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重新创建固件菜单启动项的命令将是:

efibootmgr -c -d /dev/sda -l \\EFI\\<name of your distribution>\\<bootloader file> -L "<the name you want to see in the firmware menu>"

由于同一个磁盘上有多个 ESP,您可能必须指定正确的 ESP 设备名称,而不仅仅是指定磁盘(即类似于-d /dev/sda5而不是-d /dev/sda)。

之后,使用efibootmgr -v查看启动设置。您可能必须使用efibootmgr --bootorder调整启动顺序以使 Linux 成为默认启动顺序,或者访问 BIOS 设置执行相同操作(某些 UEFI 固件可能会拒绝使用 进行的启动顺序更改efibootmgr --bootorder- 这可能是固件错误)。

如果您想让 Linux 成为 NVRAM 重置时的“幸存操作系统”,您可以--force-extra-removable在操作系统成功启动后使用该选项重新安装 UEFI GRUB,命令如下:

sudo grub-install --force-extra-removable --uefi-secure-boot /dev/sda

(如果您的系统上禁用了安全启动,并计划保持其禁用状态,则您可以根据--uefi-secure-boot需要省略该选项。)

相关内容