我的设置:
- 1 个安装了 Windows 10 的硬盘
- 1 个带有 Archlinux 的 ssd,使用 systemd-boot 安装
- 主板:MSI X470 Gaming Pro
我首先安装了 Arch,然后是 Windows 10,双启动就像一个魅力,但是在更新 BIOS 之后,我的主板会一直自动启动到 Windows,而无需先通过 systemd-boot。
在 bios 中检查启动顺序时,我的 ssd 仍然是第一个,但现在显示的是 Windows Boot Manager 而不是 UEFI OS(适用于 Linux)。
我可以验证 Linux 驱动器上仍然有我所有的东西,并且似乎没有受到影响。
有人可以向我解释为什么会这样吗?
如果有人想知道我是如何解决的:
我从 USB 记忆棒启动并挂载了我的 ssd 目录并将该Microsoft
目录从/boot/EFI/
其他地方移动。
之后,我的 ssd 的 bios 标签再次正确显示 UEFI OS 并再次启动到 systemd-boot(显然不再显示 Windows 选项)。
最后,我将Microsoft
目录移回原处/boot/EFI/
,一切正常。
我的问题仍然是为什么它首先发生以及如何在未来的 bios 升级中避免它。
UEFI 有它自己的启动管理器。此引导管理器使用 NVRAM 中的变量来定位和执行引导加载程序,您的 BIOS 使用这些变量在引导菜单中列出引导选项。您的 BIOS 更新很可能干扰了 NVRAM 并导致了问题。
我认为您可能误解了一些重要的事情,您说您的 BIOS “错误地标记了我的驱动器”。驱动器不是入口点...您可以针对具有不同标签的同一驱动器拥有许多引导条目。
因此,在上下文中,这不是关于不正确的引导条目,而是添加了引导条目并删除了您想要的引导条目。
SeetheMoar 的回答指出 NVRAM 可能已被擦除(可能)。BIOS 也很有可能首先检查 Microsoft Windows,然后才搜索其他目录。微软在市场上仍然拥有足够的主导地位,足以让这种情况发生得足够普遍。
在大多数 BIOS 中,您可以在引导屏幕上手动添加新条目。您将使用的路径可能类似于:
如果您使用的是 Arch linux。
否则,如果您可以启动到 Linux,那么该工具
efibootmgr
将允许您读取、写入和重新排序启动条目。同样,在 Windows 下,您可以按照此处所述使用bcdedit