如何实现从两个硬盘进行三重启动?

如何实现从两个硬盘进行三重启动?

请原谅这个问题太长;这有点难以解释。

我的 HP dc7100CMT 中有两个 SATA 硬盘,大小分别为 500GB 和 160GB。在较大的硬盘中,我安装了 Windows XP Pro 64 位和 Windows 7 Pro 64 位,分别位于两个分区中。

在第二个 (160GB) 驱动器中,我安装了 Fedora 20 64 位,并将其格式化为四个分区:启动、数据、交换和根 (按此顺序)。我还将 GRUB2 引导加载程序安装到“/boot”分区。但是,当我打开 PC 时,在 POST 消息清除后,系统会像以前一样引导到第一个硬盘驱动器。(Windows 7 的引导加载程序被调用并询问我是否要加载 XP 或 7 - 安装 Linux 后,这种行为应该会发生变化。)

当我检查 BIOS 时,我没有更改启动设备的选项(对于多个 SATA 驱动器,默认情况下它会在 SATA-0 上启动驱动器,并且无法更改)。另一个限制是我无法更改第一个驱动器上的 Windows 分区(并且该驱动器没有未分配的空间来安装新分区)。

这让我有两个选择:

  1. 将 GRUB2 安装到我的 Windows 驱动器(如果可能的话,首选)
  2. 物理上改变连接到主板的驱动器顺序(真的想避免这样做)

我的问题是,我该如何尝试选项 1(或类似选项)?如果不行,还有其他方法吗?

答案1

您需要使用 Fedora 安装 CD 进行启动,然后从那里将 GRUB 安装到 Windows 驱动器。这将删除 Windows 引导加载程序但您仍然可以通过 grub 加载 Windows。

当你启动 Fedora Live 会话时,你必须安装本地驱动器并设置环境chroot。关于如何使用,有一个很好的答案chroot 这里但基本程序是:

  1. 创建必要的目录

    sudo mkdir /mnt/boot /mnt/root
    
  2. 挂载本地 Linux 系统(相应更改设备名称)

    sudo mount /dev/sdb3 /mnt/       ## the / partition
    sudo mount /dev/sdb1 /mnt/boot   ## the /boot partition
    sudo mount -t proc proc /mnt/proc
    sudo mount -t sysfs sys /mnt/sys
    sudo mount -o bind /dev /mnt/dev
    
  3. 设置chroot

    sudo chroot /mnt
    

现在,创建 grub 的配置文件。如果你使用的是基于 Red Hat 的系统(如 Fedora),请运行

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

对于基于 Debian 的系统,运行

sudo update-grub

这只是一个运行grub2-mkconfig上述命令的 shell 脚本,但也包括set -e安全性(一旦出现任何错误它将立即退出)。

确保该命令的输出列出了您的两个 Windows 系统。应该有类似这样的行

Found Windows 7 (loader) on /dev/sda1
Found Windows XP (loader) on /dev/sda2

如果 grub 正确识别了您的其他操作系统,请将其安装到您的第一个硬盘上。对于基于 Red Hat 的系统,请运行:

sudo grub2-install /dev/sda

对于基于 Debian 的用户:

sudo grub-install /dev/sda

最后退出chroot并重启:

exit
sudo reboot

相关内容