我的设置:
我有两个独立的 SSD,每个都包含一个可独立启动的操作系统 - W8 和 U12.10。从我极其有限的知识来看,这意味着每个都有一个可运行的 EFI 分区(?)。
我的默认启动顺序(带有 UEFI 固件更新的 GA-Z68XP-UD3P 主板)首先启动包含 Windows 的 UEFI 分区,但是如果我进入BIOS UEFI 菜单我可以选择“ubuntu”条目来成功启动ubuntu。
两个驱动器都是 GPT,并且是 EFI 启动。
我想做的事:
重新启动 Windows 8,重新进入 W8(由于默认启动顺序,现在会发生这种情况)。但是,我想更改的是,如果我从 ubuntu 重新启动,则启动到 Ubuntu。
本质上,除非我有意识地选择其他操作系统,否则我愿意在一个操作系统中工作。通常情况下,我甚至不会询问我认为不可能的事情,但是...
我为什么认为这是可能的:
当尝试使用 EasyBCD 将 ubuntu 添加到 W8 UEFI 引导加载程序时,我注意到一个“iReboot”插件或类似的东西,它允许您选择要启动到哪个操作系统从操作系统内部。请注意,我最终没有使用 NeoGrub 条目将 Ubuntu 与 W8 引导加载程序链接起来,因为我无法获得太多帮助。
这可能吗?我是不是喝了太多咖啡,疯了?
感谢大家的时间,
AK
答案1
不幸的是,我没有 (U)EFI 主板来进行测试,因此请将此答案视为解决问题的正确方向。
根据 efibootmgr 的手动的可以使用 -n 参数强制一次性更改 (U)EFI 启动顺序。
efibootmgr
您可以通过不带任何参数发出来列出当前配置和启动 ID 。
在 Windows 端根据这在 (U)EFI 系统上,bootcfg 能够映射和操作 (U)EFI 的 NVRAM BootOrder 数组。
bootcfg /query
将列出当前配置,您可以使用 ID 设置新的默认选项
bootcfg /default /ID <ID>
我不知道您打算如何从一个“启动循环”切换到另一个,但我假设您要么使用主板的 GUI(您编写的 BIOS 在 (U)EFI 的上下文中似乎令人困惑;))要么使用 (U)EFI shell。
我会做以下事情:
- 检查是否可以在主板上的两个系统中操纵 BootOrder
- 分配将适当配置(U)EFI 的关机脚本
gpedit.msc
在 Windows 中,您可以在计算机配置/Windows 设置/脚本(启动/关机)/关机中的本地组策略 ( ) 中指定它- 在 Ubuntu 中,你可以将脚本放入
/etc/init.d
(记住chmod +x
)并将其符号链接到/etc/rc0.d
(重启)和/或/etc/rc6.d
(关机)
如果在 Windows 中操作 BootOrder 不起作用,您可以使用efibootmgr
在 Ubuntu 中仅设置下一个启动项的方法,并将 Windows 保留为默认值。