
からhttp://www.ibm.com/developerworks/library/l-bootload/index.html
ブートローダーは通常、プライマリ ブートローダーまたはセカンダリ ブートローダーのいずれかとして構成されます。
プライマリ ブート ローダーは、ブート ローダーの最初のステージが MBR にインストールされる場所です (前述の説明に従って)。
セカンダリブートローダーは、初めブートローダーのステージがブート可能なパーティションにインストールされます。
独立したブートローダー次に、MBR にインストールし、セカンダリ ブート ローダーに制御を渡すように構成する必要があります。
「セカンダリブートローダー」の「最初」は、初め「ブートローダーのステージがブート可能なパーティションにインストールされる」を「2 番目」にしますか?
セカンダリ ブート ローダーはどこに保存されますか? プライマリ ブート ローダーが保存されている MBR ではありませんか?
最後の文の「別のブートローダー」とは何ですか? プライマリ ブートローダーですか、セカンダリ ブートローダーですか?
プライマリ ブート ローダーは、初期プログラム ローダー (IPL、同じリンクで説明) と同じ概念ですか?
BIOS がアクセスできるデータの量は非常に少ないため、ほとんどのブート ローダーは 2 段階でロードされます。ブートの最初の段階では、BIOS は初期プログラム ローダー (IPL) と呼ばれるブート ローダーの一部をロードします。IPL はパーティション テーブルを照会し、その後、さまざまなメディア上のどこにあってもデータをロードできます。このアクションは、最初に第 2 段階のブート ローダーを見つけるために使用されます。第 2 段階のブート ローダーには、ローダーの残りの部分が格納されています。第 2 段階のブート ローダーは、ブート ローダーの真髄です。多くの人は、これがブート ローダーの唯一の実質的な部分であると考えています。これには、ユーザー インターフェイスやカーネル ローダーなど、ローダーのディスクを集中的に使用する部分が含まれます。これらのユーザー インターフェイスは、単純なコマンド ラインから、あらゆる機能を備えた GUI まで多岐にわたります。
ありがとう!
答え1
実は、このテキストには曖昧さがあります。プライマリ ブート ローダーはブート ローダーの最初のステージを意味するものではなく、セカンダリ ブート ローダーはブート ローダーの 2 番目のステージを意味するものではありません。
ブートローダーの最初のステージは、MBR データ内に常駐するプログラムです。このプログラムにはパーティション情報と、OS を完全にロードするには実行できない非常に基本的なディスク I/O 操作を処理する機能が含まれています。MBR ブートローダーのコード サイズは、標準の MBR レコードでは 448 バイトに制限されています (パーティション テーブルは 4*16 バイトを保持するため、特定の OS 実装ではそれより小さくなります)。
ブート ローダーの第一段階の仕事は、単に第二段階をロードすることです。第二段階には OS の仕様があり、コード スペースがはるかに多くあります。私の記憶では、NTFS の第二ブート ローダーには、OS カーネル (8 KB) をロードするための 16 個の 512 バイト セクターがあります。
プライマリおよびセカンダリという用語は、起動する OS が複数ある場合に使用されます。各 OS には、第 1 ステージと第 2 ステージを持つブート ローダーがあり、MBR のプライマリ ブート ローダーは各ブート ローダーの第 2 ステージの詳細を認識しているとは考えられないため、各ブート ローダーは第 1 ステージから開始する必要があります。
第 2 ステージは、VBR (ボリューム ブート レコード) と呼ばれるパーティション自体の先頭に保存されます。
起動する OS が 1 つの場合、MBR プログラム (IPL) が第 1 ステージで、VBR プログラムが第 2 ステージです。複数の OS がある場合、MBR プログラムはプライマリ ブート ローダーの第 1 ステージになります。このステージは、メニューとオプション全体を完全にロードする第 2 ステージであるパーティションにコードがあることを認識して、それをロードします。この第 2 ステージは、VBR があるパーティションを認識し、VBR を続行します。これで、VBR がセカンダリ ブート ローダーになります。
はい、私は「MBR のプライマリ ブート ローダーは、各ブート ローダーの 2 番目のステージの詳細について認識する必要はないため、各ブート ローダーはステージ 1 から開始する必要があります」と言いました。これが、VBR コード自体にも MBR コードが含まれている理由です。Windows VBR コードにも含まれています。
答え2
ディスクと MBR を備えた PC だけではありません。プライマリ、セカンダリ、ターシャリ ブートローダは、より一般的な形でよく見られ、不揮発性ブート メモリを備え、ファイル システムのないボードでも見られます。
つまり、組み込みの世界では、プライマリ ブートローダーは一般的に SoC の ROM ブートローダーであり、セカンダリ ブートローダーは、周辺機器と DDR を初期化し、OS をロードできるようにするためにロードされる、通常は小さい最初のプログラムです。PC では、セカンダリ ブートローダーは、DDR を初期化し、GRUB などの別のブートローダー/マネージャーをロードする MB ファームウェアと見なされる場合があります。