GRUB2 通过链式加载 BCD 启动到 Windows 7。BCD 通常安装在没有驱动器号的系统保留分区中。
例子:
Partition 1 - Ubuntu & GRUB2 bootmanager installed, Primary
Partition 2 - System Reserved, Contains BCD/Windows BootManager, Primary
Partition 3 - Windows 7 Home, Primary
Partition 4 - Windows 7 Pro, Primary
Partition 5 - Windows 7 Ultimate, Logical
当启动到 Windows 时,它应该工作如下
MBR -> GRUB2 -> BCD(Windows Boot Menu) -> Selected Windows 7
但是,我想在 GRUB2 中添加菜单项,以便直接启动到特定的 Windows 7。
MBR -> GRUB2 -> Selected Windows 7
(我曾阅读过有关在 GRUB2 博客中添加自定义菜单项的信息,但它所做的只是加载 Windows 启动菜单) 那可能吗?
我认为使其工作的唯一方法是在不同的分区上安装多个 BCD,每个 BCD 仅包含一个 Windows 7 条目。然后告诉 GRUB2 在菜单项选择时加载到不同的 BCD。
MBR -> GRUB2 -> BCD(Skipped Windows Boot Menu due to one entry) -> Selected Windows 7
但是,BCD 只能在主分区上检测到,因此无法在逻辑分区上安装的 Windows 上工作。有办法解决这个问题吗?
答案1
多个 BCD 分区可以工作。在 MBR 系统上,您将只能使用 3 个版本的 Windows每个驱动器使用该方法,因为(正如您所提到的)启动分区必须是 Windows 的主要分区。
一个分区的另一种可能性是将参数传递给 chainloaded bootmgr
,但我认为它或 GRUB 不支持这一点。您只能在启动之前配置 BCD。
最后,您可以尝试将所有内容(在本例中为 Ubuntu)放入 Windows 启动菜单中,并取消 GRUB 菜单,以获得类似的最终结果。