如何在没有 Microsoft 启动管理器的情况下从 Grub 直接启动到 Vista 和 Windows 8?

Gru*_*bel 5 bootloader multi-boot grub2 windows-8-preview

我在主分区上分别安装了 Vista 和 Windows 8,并使用 Grub 作为引导管理器。问题是在安装 Windows 8 后 Grub 不能再直接启动到 Vista,因为 Windows 8 用它自己的覆盖了 Vista 启动管理器,最重要的是在进入 Vista 之前需要额外重新启动(即 Grub -> WindowsBoot -> 重新启动 -> 再次 Grub -> Vista)。恢复 Vista 启动管理器并不难,但也无济于事,因为 Windows 8 分区本身无法自行启动。

如何配置它以便我可以从 Grub 直接启动到 Vista 和 Windows 8 而不必使用 Windows 启动管理器?

编辑:为了澄清一下,我想要的只是:Vista 分区上的 Vista bootmgr,Windows 8 分区上的 Windows 8 bootmgr 和 MBR 中的 Grub 以选择要启动的那个。

Edit2:部分答案可以在以下位置找到:

有了这个,我设法获得了一些工作配置(复制 c:\boot 到驱动器 e:,胡乱bcdedit.exe地将一些驱动器从 c: 设置为 e:)。仍然存在一些问题,例如 Vista 拒绝自动跳过启动菜单和 Vista 出于某种原因从 Windows 8 BCD 启动,反之亦然。

Gru*_*bel 2

第一步,照常安装 Vista、Windows 8 和 Linux。Windows 8 会将其启动管理器安装在 Vista 分区上,从而破坏 Vista 启动加载程序。

第二步,将C:\Boot\目录从Vista复制到Windows 8分区,这样Windows 8引导加载程序就在它所属的地方。这可能需要在 Linux 或 Windows 恢复控制台中完成,因为 Windows 会锁定某些文件。

第三步,使用bcdedit让Windows 8启动管理器指向Windows 8分区,而不是Vista分区:

bcdedit.exe /store E:\boot\bcd /set {bootmgr} device partition=E:
Run Code Online (Sandbox Code Playgroud)

这可能需要在恢复模式下通过 Windows 安装光盘来完成。

第四步,使用 Windows 恢复光盘启动并让它修复 Windows Vista 启动或手动执行以下操作:

bootrec /fixboot
Run Code Online (Sandbox Code Playgroud)

Windows Vista 和 Windows 8 引导加载程序现在应该位于各自所属的分区上。

要摆脱启动菜单,必须从 Vista BCD 中删除 Windows 8 菜单项,并从 Windows 8 BCD 中删除 Vista 项,因为timeout 0displaybootmenu No似乎无法单独工作。使用 EasyBCD 可以轻松完成此操作。

另一件需要记住的事情是,大多数 Windows 启动修复工具只能在设置了启动标志的分区上运行,并且不允许在其他分区上运行。因此,需要确保cfdisk为正确的分区设置了引导标志。这导致了我在此过程中的大部分困惑,因为即使像 EasyBCD 这样的工具也会不断尝试在错误的驱动器上操作(即 Windows 8 分区被标记为可引导,需要将其重置为第一个分区)。

如果一切都完成,update-grub应该可以正确检测到两个 Windows 分区,并且能够直接启动到每个分区,而无需 Windows 启动菜单。


归档时间:

查看次数:

7055 次

最近记录:

13 年,7 月 前