我在 UEFI 模式下在 3TB GPT 磁盘上安装了 Windows 8 和 Ubuntu 12.10。
两者都可以正常启动。
两个操作系统都在 UEFI 启动菜单中创建了自己的条目,其中有“ubuntu”和“Windows 8”条目。
可以在主板的 UEFI 设置中更改启动顺序。
我想首先启动“ubuntu”,因为我设置了 GRUB 2 以便能够启动两个系统。
但是每当我启动 Windows 8 时,它都会更改启动顺序,以便首先启动。
我该如何预防?
多谢。
- 更新 -
我了解到 bcdedit.exe 可用于操作 Windows 中的启动配置数据。
这很重要,因为 Windows 将 BCD 与存储启动顺序的启动 NVRAM 同步。
每次触碰 BCD 中的 {fwbootmgr} 条目时,NVRAM 都会被覆盖。
我修改了此条目以首先加载 GRUB 2,并且确实如此。但是,在启动 Windows 8 后,NVRAM和BCD中的{fwbootmgr}恢复原来的顺序,即先启动Windows 8。
我对此确实感到困惑。
-- 更新 2 --
我设法通过在 Windows 的组策略编辑器中创建启动脚本来解决这个问题。启动脚本发出“bcdedit /set {fwbootmgr} DEFAULT {appropriate UUID}”命令。这是一个大问题,绝对不是我想要的解决方案。我希望 Windows 在 NVRAM 中排在 GRUB 之后,排名第二。
那么我该怎么做呢?
答案1
微软的一位代表在他们的官方论坛上回答了我的问题。他们说这确实是正常现象。
我通过在每次系统启动时运行 .bat 文件解决了该问题。该文件执行以下操作:
bcdedit /set {fwbootmgr} DEFAULT {appropriate UUID}
其中“适当的 UUID”是 GRUB 中的 UUID,可以从“bcedit /enum firmware”列表中读取。
可以通过打开组策略编辑器(在 metro 中查找)来编辑 bat 文件。
我写了一篇有关双启动问题的文章:http://tlfabian.blogspot.hu/2013/01/converting-dual-boot-mbr-partitioned.html
答案2
不保证,但可以在 Windows 中尝试此操作:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
如果您尚未禁用安全启动,则需要更改grubx64.efi
为shim.efi
。
如果这不起作用,请向微软投诉,或将其从双启动状态中移除并在虚拟机中运行它。