LinuxとWindows7で、ブートローダーとしてGrubを使用したデュアルブートセットアップがあります。
私のパーティションテーブルは次のようになります。
100 MB System Reserved Windows 7
500 GB Windows 7
100 MB /boot - ext2
500 GB linux, swap, etc.
このセットアップをここで行った後、GRUBが自分自身をインストールした場所に興味があります。
システム予約済みパーティションはWindows7の起動パーティションだと思いましたが、Grubがそれを書き直した場合(マスターブートレコードにあると思います)、Windows7を実行できないようです。
Grubはどこにインストールされ、それでもWindowsとLinuxの両方を指すことができますか?パーティションの設定方法によって異なりますか?
Windowsが自身をインストールすると、ブートローダー(NTからXPではNTLDR、その後はwinboot)がboot.ini
を読み取るマスターブートレコードに配置され、ブートリストが表示されます。そのリストから何かを選択すると、ブートローダーのジョブが完了し、ドライブ上の実際のパーティションから適切なカーネルが開始されます。
Grubも同じことをします。ブートローダーはgrub.conf
/menu.lst
リストを表示するためだけにあり、何かを選択すると、制御を通常のパーティションに移します。したがって、grubはMBRのNTLDR/winbootを上書きしますが、通常のパーティションには何も上書きしません。また、ブートリストからWindowsを選択した場合、Windowsパーティションに制御を移す方法を知っています。
Grubは、ドライブのマスターブートレコードに自分自身をインストールします。マスターブートレコードはパーティションドライブの最初のセクターであり、パーティション自体ではないことを理解することが重要です。詳細については、 Wikipedia を参照してください。
この情報が与えられると、基本的にGrubはWindows 7がインストールしたMBR情報を上書きしますが、Windows 7が作成する「システム予約済みパーティション」には影響しません(要求がない限り)。新しいMBRは、システムにGRUBをロードするように指示するだけで、GRUBは、適切なOSがロードされていることを確認します。これにより、オペレーティングシステムを簡単に切り替えることができます。
MBR以外の場所にGRUBをインストールするのは、Macの場合だけです。デュアルブートの質問全体がかなり複雑になります。一般的なケースでは、GRUBがMBRにインストールされ、NTLDRが上書きされ、LinuxまたはWindowsを起動できるようになります。
ここには紛らわしいものがいくつかあります。まず最初に、ディスクがパーティション分割されている場合(スライス=プライマリパーティション)、各スライスに「パーティションブートレコード」があることを知っておく必要があります。ディスクをフォーマットするとき、最初のセクターは「ブートセクター」と呼ばれます。ブートセクタは、起動可能としてフラグが立てられたパーティションからロードおよび実行されます。
GRUBはこの領域に512バイトしかなく、stage1と呼ばれます。ステージ1はステージ2(または1.5)をロードするだけで、これはmenu.lstファイルと他のモジュールをロードするファイルです。
Stage1.5(またはStage2)は少量のコードからmenu.lstをロードするため、そのファイルシステム固有です(FSで/boot/menu.lstを見つけることができる必要があります)。
詳細については、 here をご覧ください。
一言で言えば、Stage1はMBRにありますが、GRUBはstage1だけではなく、Stage1以外はすべて/ bootにあります。