如何从两个硬盘驱动器三重启动?


2

请原谅问题的长度; 解释这有点棘手。

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

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

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

这让我有两个选择:

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

我的问题是,如何尝试选项1(或类似的东西)?如果没有,还有另一种方式吗?


按顺序安装操作系统。如果您需要Windows XP,Linux和Windows 7.按顺序安装它们。安装完最后一个操作系统后,您将不得不“修复”Grub。
Ramhound 2014年

@Ramhound我说我做不到; 我无法重新安装Windows - 这是约束。另外,我DID按照我想要的顺序安装它们,Linux在一个单独的驱动器上。它只是我可以改变的引导加载程序。
ayane 2014年

你没有限制你的选择,你想要实现选项1,我为你提供了一种方法。
Ramhound 2014年

@Ramhound我很感激帮助,但是我需要像terdon这样的回答,因为覆盖引导程序是我打算完成的; 对不起,如果我不清楚。
ayane 2014年

让自己明白
为时已

Answers:


4

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

当您启动Fedora实时会话时,您必须安装本地驱动器并设置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

我尝试了你的答案,但是sudo update-grub说“update-grub”无效。我试过“update-grub2”,但那也无效。
ayane 2014年

@abckookooman抱歉,我忘了你提到的Fedora。尝试更新的答案。
terdon 2014年

+1你的答案就像一个魅力。但是,我只需要使用最后两行,因为fedora会自动设置chroot;)但是,GRUB会加载windows 7 bootloader。如果我必须访问Windows,我必须通过GRUB和Windows bootloader ...有一个简单的方法在grub.cfg中添加一个条目?
ayane 2014年

@abckookooman可能是的,但请发布一个新的问题以便跟进问题。
terdon 2014年

该死你的好。
达蒙2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.