Windows 启动加载程序调用旧版 GRUB

Windows 启动加载程序调用旧版 GRUB

我有两个硬盘和两个 GRUB 版本。Windows 仍然依赖于我想要删除的旧版本。如何让 Windows 启动管理器仅与我的新 GRUB 版本通信。

我开始使用 Win7、XP 和 Ubuntu 10.04 的三重启动。我在 sdb 驱动器上安装了 GRUB 版本 1.98。为了启动 Windows,我从列表中选择 Windows 7,然后进入 Windows 7 (Loader) /dev/sdb1 屏幕,我可以在屏幕上选择 Win7 或 XP。所有操作都正常。

然后我决定在另一个硬盘上加载 Ubuntu 14.04。系统将此驱动器视为 sda。加载我的旧 Ubuntu 10.04 并运行 update-grub 后,我可以从 GRUB 1.98 菜单中看到我的新 Ubuntu 14.04 - 这里没有问题。

当我直接启动到 sda 驱动器时,问题就出现了。在这里,我看到了 Ubuntu 14.04 附带的 GRUB 2.02 菜单。当我从列表中选择 Win7 时,它会(正确地)带我进入 Windows 启动管理器,但随后又回到我原来的 GRUB 1.98 菜单。这里的想法是,我想删除 Ubuntu 10.04(带有 GRUB 1.98)分区,将 Win7 和 XP 留在一个驱动器上,将 Ubuntu 14.04 保留在另一个驱动器上。但如果 Windows 依赖于我旧的 GRUB 安装,恐怕我将无法访问 Windows。

Disk /dev/sda: 20 GB, 

   Device  Boot     Start         End      Blocks   Id  System
/dev/sda1   *           1        2310    18553856   83  Linux
/dev/sda2            2311        2434      994305    5  Extended
/dev/sda5            2311        2434      994304   82  Linux swap / Solaris

Disk /dev/sdb: 250 GB,

   Device  Boot     Start         End      Blocks   Id  System
/dev/sdb1   *           1        6133    49263291    7  HPFS/NTFS
/dev/sdb2            6134        7977    14811930    7  HPFS/NTFS
/dev/sdb3            7978       12748    38323057+   5  Extended
/dev/sdb4           12749       30402   141797376    7  HPFS/NTFS
/dev/sdb5            7979       12499    36314932+  83  Linux
/dev/sdb6           12500       12748     2000061   82  Linux swap / Solaris

因此,我的新 GRUB 2.02 和 Ubuntu 14.04 位于标有 sda 的 20GB 驱动器上,sdb1 有 XP,sdb2 有 Win7,sdb3 是一个扩展分区,其中包含 sdb5 和 sdb6,其中有我的 Ubuntu 10.04。sdb4 分区只是公共存储空间。

命令: sudo dd if=/dev/sda bs=512 count=1 | hexdump -C sudo dd if=/dev/sdb bs=512 count=1 | hexdump -C

显示每个驱动器的 MBR 中都有一个 GRUB 版本。

我想知道如何设置我的 Windows 启动管理器,以便它只与我的 sda 驱动器上的 GRUB 通信,而不与 sdb 驱动器上的 GRUB 通信(GRUB 1.98)。完成后,我希望进行以下配置:

  • sda:带有 GRUB 2.02 的 Ubuntu 14.04
  • sdb:没有 GRUB 的 Win7 和 XP

相关内容