プライマリブートローダーとセカンダリブートローダーの違いは何ですか?

プライマリブートローダーとセカンダリブートローダーの違いは何ですか?

プライマリ ブートローダとセカンダリ ブートローダの違いは何ですか? プライマリとセカンダリは、ブートローダの 2 つの部分を指すのでしょうか、それともブートローダの 2 つのステージを指すのでしょうか? 混乱しています。

答え1

プロセスの説明があまりにも単純すぎるため、混乱しています。プライマリおよびセカンダリブートローダーは、人々がこの第一/第二の概念を引き出していると思われる場所の1つですが、これはかなり狭い、Linuxのみの世界観をとっていることに注意してください(最初の文で明確に述べられているように)、2005年に書かれたものであり、実際には同じブート ローダー プログラム (GRUB) は、2 つの異なるブート ローダー プログラム (1 つは「プライマリ」、もう 1 つは「セカンダリ」) 間ではなく、ハード ディスク上の 2 つの異なる場所 (MBR ウイルス領域とディスク パーティション) にインストールされます。

実際には、PC互換機やワークステーションクラスのマシン(質問のタグによると)用のほとんどのオペレーティングシステムをブートストラップすることは、シリーズローダー プログラムが複数あり、それぞれが次のプログラムをロードします。プライマリ/セカンダリの区別は、プログラムが 2 つしかないと誤って示唆したり、(Thayne の回答のように) シーケンス内の複数のプログラムのうち 2 つだけが「プライマリ」および「セカンダリ」として特別なステータスを持っていると誤って示唆したり、最近の PC では MBR および VBR でブート ローダー プログラムが必ず使用されると誤って示唆したりします。

2 つ以上のプログラムを含むこのようなチェーンの非常に簡単な例を 3 つ示します。

  • 旧式の PC98/PC-AT マシンのファームウェア内のローダー プログラムは、マスター ブート レコード内のローダー プログラムをロードし、マスター ブート レコードはボリューム ブート レコード内のローダー プログラムをロードし、ボリューム ブート レコードはファイルから PC-DOS/DR-DOS の基本入出力システム部分をロードし、ボリュームIBMBIO.COMブート レコードはファイルから PC-DOS/DR-DOS の基本ディスク オペレーティング システム部分をロードしますIBMDOS.COM
  • 旧式の PC98/PC-AT マシンのファームウェア内のローダー プログラムは、マスター ブート レコード内のローダー プログラムをロードし、マスター ブート レコードはボリューム ブート レコード内のローダー プログラムをロードし、ボリューム ブート レコードはローダー プログラムをロードし、OS2BOOTローダー プログラムはローダー プログラムをロードし、OS2LDRローダー プログラムはプログラムをロードしますOS2KRNL
  • 新しいスタイルの EFI マシンのファームウェア内の EFI ブート マネージャー プログラムは、bootmgfw.efiプログラムをロードするプログラムをロードwinload.exeするプログラムをロードしますntoskrnl.exe

これらのいずれかを他のものよりも「プライマリ」として指定する良い理由はありません。実際、ローダープログラムを他のプログラムよりも「プライマリ」として指定する良い理由はありません。マシンのファームウェアに組み込まれている「プライマリ」として。例えばTianoCoreを詳しく見てみると、ブートローディングの段階がいくつかあることがわかります。ファームウェア内そして、ファームウェア ファイル システム(ただし、これらは両方ともこの回答の範囲をはるかに超えています。IBM MicroChannel Architecture マシンのブート プロセスも同様です。IBM MicroChannel Architecture マシンでは、MBR ブート ローダー プログラムよりも前に DASD からデータがロードされます。)

GRUB 1 に「ステージ 1.5」があったことは有名ですが、そもそも GRUB「ステージ 1」をロードする別のローダー プログラムが明らかに存在するという事実を無視しても、PC 互換の世界ではブートストラップ シーケンスが 2 つのステージだけであり、ブートストラップ プログラムが「プライマリ」と「セカンダリ」にきちんと分かれているという考えは現実と一致していないことが自明です。

参考文献

答え2

プライマリ ブートローダは、MBR 上にあるブートローダです。セカンダリ ブートローダはパーティションの 1 つにあり、プライマリ ブートローダによって起動されます。

たとえば、Linux と Windows のデュアル ブート システムでは、GRUB がプライマリ ブートローダとなり、Windows が選択された場合はセカンダリ Windows ブートローダがロードされます。

関連情報