如何使用 GRUB 分别双启动 Windows 7/8?

如何使用 GRUB 分别双启动 Windows 7/8?

我安装了 Windows 8 测试版并重新安装了 GRUB。当我启动计算机并选择 Windows 7 时,我得到了新的 Windows 8 启动屏幕,要求在 Windows 7 或 8 之间启动。

如果我选择 Windows 7,我的计算机就会重新启动,我必须再次选择 Windows 7 才能启动到 7。但如果我选择 Windows 8,它就会立即启动。我知道我可以选择默认启动哪个操作系统,但我希望我的 GRUB 选项成为在操作系统之间进行选择的唯一方式。所以我的问题是,我该如何设置它,以便当我单击 Windows 7 时,我会转到那里,而当我选择 Windows 8 时,我会启动 8?

答案1

简单的答案是:您不能。Windows 8 使用一种新型的引导加载程序,在要求您选择要引导哪个之前,几乎完全启动操作系统。然后它会重新启动到正确的操作系统。在这种情况下,如果您选择 Windows 7,它会启动到 Windows 7 引导加载程序,然后再启动到 Windows 7。如果您选择 Windows 8,它会重新启动到 Windows 8 分区,并带有跳过 Windows 8 引导加载程序的标志。

奇怪的答案:您可能能够卸载或禁用 Windows 7 和 Windows 8 引导加载程序,让 GRUB 完全控制。但这实际上与 Ubuntu 无关。尝试询问 M$ 的人?

答案2

我假设您已经安装了所有内容(Windows 7/8 和 Linux),并且 Windows 为引导加载程序提供了单独的分区。

您需要启动 Windows 7,打开提升的命令提示符(在菜单开始中,而不是左键单击,右键单击并选择“以管理员身份运行”)并发出:

bcdboot c:\Windows /s c:

然后你可以重新启动进入 Linux,并假设你的 os-prober 刚刚出现问题:

grub2-mkconfig -o /boot/grub/grub.cfg

您将发现以下条目:

  • Ubuntu
  • Ubuntu 的高级选项
  • Windows 8(在 /dev/sda1 上)
  • Windows 7(在 /dev/sda2 上)

选择 Windows 8 允许像以前一样“选择”Windows 7。也许bcdboot在 Windows 8 中运行可以解决该问题,但我还没有尝试过 - 一种简单而安全的解决方法是将超时时间更改为 5 秒。

不幸的是,我不使用 Ubuntu,所以描述更多的是我在 Gentoo 上所做的,所以grub2-mkconfig名称可能会有所不同等等。

PS. 我认为这无关紧要,但在我设法通过 bcdboot 完成之前,我已经这样做了。我bootsect.exe从 Windows 7 安装盘(位于启动目录中)获取并运行:

bootsect.exe /nt60 C:

在尝试上述任何命令之前,请阅读文档(我今天刚刚尝试过并且有效 - 我不是专家)。

相关内容