web-dev-qa-db-ja.com

2台のハードドライブからトリプルブートするにはどうすればよいですか?

質問の長さを許してください。これを説明するのは少し難しいです。

HP dc7100CMTに2台のSATAハードドライブがあり、それらのサイズは500GBと160GBです。大きい方のドライブには、Windows XP Pro64ビットとWindows7 Pro 64ビットがそれぞれ2つのパーティションにあります。

2番目(160GB)のドライブに、Fedora 20 64ビットをインストールし、ブート、データ、スワップ、ルートの4つのパーティション(この順序で)にフォーマットしました。また、GRUB2ブートローダーを「/ boot」パーティションにインストールしました。ただし、PCの電源を入れると、POSTメッセージがクリアされた後、以前と同じように、システムが最初のハードドライブで起動します(Windows 7のブートローダーが呼び出され、私に尋ねられます)。ロードしたい場合XPまたは7-この動作はLinuxのインストール後に変更されているはずです。)

BIOSを確認すると、ブートデバイスを変更するオプションがありません(複数のSATAドライブの場合、デフォルトでSATA-0でドライブが起動するため、変更できません)。もう1つの制約は、最初のドライブのWindowsパーティションを変更できないことです(ドライブには、新しいパーティションをインストールするための未割り当て領域がありません)。

これには2つの選択肢があります。

  1. GRUB2をWindowsドライブにインストールします(推奨-可能であれば)
  2. マザーボードに接続されているドライブの順序を物理的に変更します(これは避けたいです)

私の質問は、オプション1(または同様のもの)をどのように試すことができるかということです。そうでない場合、別の方法はありますか?

2
ayane

FedoraインストールCDを使用して起動する必要があり、そこからGRUBをWindowsドライブにインストールします。これにより、Windowsブートローダーが削除されますただし、grubを介してWindowsをロードすることはできます。

Fedoraライブセッションを起動したら、ローカルドライブをマウントし、chroot環境をセットアップする必要があります。 chroothere の使用方法については非常に良い答えがありますが、基本的な手順は次のとおりです。

  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コマンドを実行するシェルスクリプトですが、安全のためにset -eも含まれています(エラーが発生するとすぐに終了します)。

そのコマンドの出力に両方のWindowsシステムがリストされていることを確認してください。次のような行があるはずです

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

Grubが他のOSを正しく認識している場合は、それを最初のハードドライブにインストールします。 Red Hatベースのシステムの場合、以下を実行します。

Sudo grub2-install /dev/sda

そしてDebianベースの場合:

Sudo grub-install /dev/sda

最後に、chrootを終了し、再起動します。

exit
Sudo reboot
4
terdon