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

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

我在 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 是不可能的)并且启动菜单中同样缺少选项。

答案1

您的 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"

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

答案2

我遇到了几乎完全相同的问题。今天更新 BIOS 后,在一台开启双引导的 Lenovo 笔记本电脑(Legion Y7000,如果有帮助的话)上,当我启动笔记本电脑时,我再也看不到 GRUB 弹出了。它将直接进入 Windows 启动管理器并启动我的 Windows。

我处于绝对恐慌的状态,但幸运的是,我的问题有一个简单的解决方案。该更新已将启动优先级从 ubuntu -> windows 启动管理器切换为 windows 启动管理器 -> ubuntu。我把它从 UEFI 设置切换回来,一切都恢复正常了!如果您不知道如何访问 UEFI 设置,请访问:

Settings -> Update & Security -> Recovery -> Advanced Startup -> Restart Now

这将带您离开窗口,进入蓝色菜单。然后转到:

Troubleshoot -> Advanced Options -> UEFI Firmware Settings

最后将带您进入 BIOS,您可以在其中转到boot选项卡来更改启动优先级。

答案3

您应该启动到 Arch 安装介质,将所有分区(boot、efi、root...)安装到/mnt安装 Arch 时的位置。然后arch-chroot /mnt在 UEFI 模式下重新安装 Grub,如上所述Grub - ArchWiki

相关内容