単一のハードディスクに Windows と Linux 用の別々のブートローダーがありますか?

単一のハードディスクに Windows と Linux 用の別々のブートローダーがありますか?

現時点では、500 GB のハード ディスクが 1 台あり、1 つのパーティションに Windows が最初にインストールされ、別のパーティションに Ubuntu がインストールされています。Ubuntu は 2 番目にインストールされたため、Windows パーティションが検出され、Grub によってデュアル ブートが提供されました。Ubuntu をインストールした後、Windows のドライブ文字 C が D に変わり、Windows が起動しないことがあります。

問題は、新しいバージョンの Windows をインストールしたいときにインストールしたら、システムが直接 Windows を起動してしまうことです。Linux を起動するオプションは提供されていません。

そこで2つの質問です:
1.Windows または Linux を新しいバージョンで再インストールしたい場合、デュアル ブート オプションが無視されないようにするにはどうすればよいですか?
2.Windows パーティションと Linux パーティションが互いをまったく認識しないようにする方法はありますか? おそらく、ディスク上にあるオペレーティング システムを検出し、どのオペレーティング システムを起動するかを選択できるサードパーティのブートローダーを使用することで、オペレーティング システムの 1 つを完全に削除/新しいものに置き換えても、その OS (Windows) または変更されていない Linux OS のいずれかを起動できるようになります。

答え1

Windows を再インストールする場合の問題は、Windows が他の OS とうまく連携しないため、MBR が自動的に上書きされて Windows 自体を指すようになることです。そのため、デュアル ブートを実現するには、ブートローダーを再インストールする必要があります。

ブートローダーを USB スティックにインストールするのはどうでしょうか? そうすれば、Windows のインストール/アップデートを煩わしさなく続けることができ、Linux を起動したいときは USB スティックを挿入するだけで Linux を起動できます。Linux 内で fstab を変更して、Windows パーティションをマウントしないようにすることもできます。

Linux をインストールし、新しい Linux インストール内から次の操作を実行します。

  1. USBをゼロにする

    dd if=/dev/zero of=/dev/sdd

  2. USBの先頭に128 MBのパーティションを作成します

    fdisk /dev/sdd ... パーティションを作成するには 'n' を使用します mkfs -t ext2 /dev/sdd1 mkdir /tmp/myusb mount /dev/sdd1 /tmp/myusb mkdir /tmp/myusb/boot

  3. ブート ディレクトリが USB ドライブ上にあることを確認して、grub を USB にインストールします。

    grub-install --boot-directory=/tmp/myusb/boot /dev/sdd

  4. /etc/grub.d/40_custom を編集し、以下を追加します (msdos1 は最初の Windows パーティションです)

    menuentry "WINDOWS"{
    set root='(hd0,msdos1)' 
    chainloader +1
    }
    
  5. grub config を更新し、USB に出力します。

    アップデート grub --output=/tmp/myusb/boot/grub/grub.cfg

この情報のほとんどは次のブログからのものです: http://jarrodla.blogspot.co.uk/2014/04/hp-microserver-gen8-boot-from-5th-sata.html

関連情報