Thinkpad X1 Carbon gen5 上的 UEFI (BIOS) 升级后,GRUB 从启动菜单中消失

pet*_*hka 2 dual-boot bios thinkpad grub2 uefi

我在 Thinkpad X1 Carbon gen5 上安装了 Windows 10 和 Arch linux(带 grub)双启动系统。我已将 BIOS 从版本 1.22 更新到1.34

在更新之前,我在启动菜单中有几个选项,包括Windows Boot Managergrub。现在我没有这些选项,只有 SSD 名称(选择此强制笔记本电脑启动 Win 10)和网络启动选项。

我已经尝试了所有选项:

  • 安全 -> 安全启动 -> [禁用]
  • 启动 -> UEFI/旧版 -> [仅限 UEFI]
  • 启动 -> UEFI/legacy -> CMS -> [禁用](也尝试启用)
  • 操作系统优化默认值 -> [禁用]

启动菜单没有任何变化。

我应该怎么做才能强制 BIOS 列出包括 grub 在内的所有选项?

UPD。我已经降级到 1.23(降级到 1.22 是不可能的)并且启动菜单中同样缺少选项。

tel*_*coM 5

您的 UEFI 升级可能重置了 NVRAM 设置,这些设置在 UEFI 系统上还包括已安装操作系统的引导配置。并非所有启动菜单项都会在启动时即时检测:相反,已安装操作系统的启动项会在操作系统安装时存储在 UEFI NVRAM 中。

我建议首先从 Windows 10 安装介质启动。首先选择您的语言/键盘和任何其他首选项,然后在出现选项时选择“修复您的计算机”。它应该自动重新创建 Windows 启动菜单选项。

然后,您可以从任何支持 UEFI 的 Linux Live 介质启动,验证 Arch GRUB 引导加载程序仍然存在于 ESP 分区中,并使用命令efibootmgr为其添加启动菜单项。

假设您的 EFI 系统分区是 上的第一个分区/dev/sda,则必要的efibootmgr命令行应类似于以下内容:

# efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\arch\\grubx64.efi -L "Arch Linux"
Run Code Online (Sandbox Code Playgroud)

请注意引导加载程序的 Windows 样式路径名,其中包含双反斜杠,因为反斜杠是 shell 的特殊转义字符。对于启动菜单标签(-L 选项),如果您愿意,您可以编写任何您想要的内容,而不是“Arch Linux”。