解决双系统(同盘)启动顺序

解决双系统(同盘)启动顺序

启动顺序更改前

安装好双系统(Linux After Windows)完后,启动顺序一切正常,启动顺序(Primary Boot Sequence) 如下:

> M.2 Drive 1: Sum...
    > Manjaro
    > Windows Boot Manager
> SATA 1: ...
> SATA 2: ...

启动顺序被更改

但开机动画太拖延时间,又去 BIOS 胡乱设置,导致只能启动 Windows,重启后再次进入 BIOS 发现 Primary Boot Sequence 已经被 Windows 更改(调戏)了:

> M.2 Drive 1: Sum...
    > Windows Boot Manager *
    > Manjaro              *
> SATA 1: ...
> SATA 2: ...

BIOS 是无法对同一个硬盘下的 Windows Boot ManagerManjaro 设置启动顺序。

因为电脑只有一个 M.2 接口,所以只能将 512G 的硬盘分区装双系统

解决方案

开机时按 F12 选择 Manjaro。进入 Manjaro 后需提前安装 efibootmgr。执行 efibootmgr 结果如下:

➜  ~ efibootmgr
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0003,0007,0006,0008,0009,000A
Boot0000* Windows Boot Manager
Boot0003* Manjaro
Boot0006* ST2000DM008-2FR102
Boot0007* Samsung SSD 970 PRO 512GB
Boot0008* Realtek PXE B04 D00
Boot0009* Generic Usb Device
Boot000A* CD/DVD Device

通过 BootOrder: 0000,0003,0007,0006,0008,0009,000A 可以看出 Boot0000* Windows Boot Manager 被安排了。我们只需要修改成期望的执行顺序即可:

➜  ~ efibootmgr -o 0003,0000,0007,0006,0008,0009,000A
➜  ~ reboot

这里 -o 参数的意思是设置启动顺序

最后,建议将双系统安装在不同的硬盘中,避免一些不必要得麻烦。

参考

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://johnniang.me/archives/dual-boot-primary-boot-sequence