BIOS はどのようにしてドライブを読み取るのでしょうか?

BIOS はどのようにしてドライブを読み取るのでしょうか?

つまり、すべてのブートローダは同じであり、どの BIOS でも常にそれらを読み取り、ドライブに制御を渡すことができるため、FAT32、NTFS、ext4、btrfs などを BIOS が理解する必要はありませんか?

答え1

はい。

GPT 以前は、BIOS がディスクが起動可能かどうかをチェックし (ディスクの 511 番目と 512 番目のバイトにある特定の「マジック シグネチャ」を探すことによって)、それらのバイトが期待値に設定されていたため、BIOS はディスクのバイト番号 0 からコードを実行できました。

BIOS は通常、FAT32、NTFS、ext4 などのファイルシステム形式を理解しません。BIOS はパーティションさえ理解しません。パーティションを認識できるというのは、ディスクの先頭に保存されるコードのバイトに詰め込まれた概念です。

その後、そのブート コードは通常、別のブート ローダー、または「第 2 段階のブート ローダー」(OpenBSD はこれを実行します) などの追加コードを見つけます。この追加コードは、多くの場合、ファイル システムをもう少し理解します (カーネルを見つけて起動を開始できる程度)。

GPT (「GUID パーティション テーブル」) では、プロセスはもう少し複雑です。(U)EFI は他の詳細も調べます。ただし、類似点もあります。(U)EFI が調べる特定の詳細はファイル システムに依存しておらず、GPT はその場所でコード (「ブート ローダー」など) を実行します。

関連情報