我的设置:
- 1 个安装了 Windows 10 的硬盘
- 1 个 SSD,安装了使用 systemd-boot 的 Archlinux
- 母板:微星 X470 游戏专业版
我首先安装了 Arch,然后安装了 Windows 10,双启动效果非常好,但在 BIOS 更新后,我的主板不断自动启动到 Windows,而无需先通过 systemd 启动。
在 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 升级过程中避免它。
答案1
UEFI 有自己的启动管理器。此引导管理器使用 NVRAM 中的变量来定位和执行引导加载程序,并且 BIOS 使用这些变量在引导菜单中列出引导选项。您的 BIOS 更新很可能干扰了 NVRAM 并导致了该问题。
答案2
我认为你可能误解了一些重要的事情,你说你的 BIOS 有“我的驱动器贴错标签了“。驱动器不是入口点...您可以针对具有不同标签的同一驱动器有许多引导条目。
因此,在上下文中,这不是关于不正确的启动项,而是关于添加启动项和删除您想要的启动项。
西斯莫尔的回答指出 NVRAM 可能已被擦除(可能)。 BIOS 也很可能首先检查 Microsoft Windows,然后再搜索其他目录。微软在市场上仍然拥有足够的主导地位,这种情况经常发生。
在大多数 BIOS 上,您可以通过一种方法在启动屏幕上手动添加新条目。您将使用的路径可能类似于:
/EFI/arch/grubx64.efi
如果你使用的是 Arch linux。
否则,如果您可以启动进入 Linux,那么该工具efibootmgr
将允许您读取、写入和重新排序启动项。