我有两个硬盘和两个 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