レガシー/UEFI ブートローダは、2 段階のブートローダが見つかる場所をどのように知ることができますか?

レガシー/UEFI ブートローダは、2 段階のブートローダが見つかる場所をどのように知ることができますか?

boot私が作業したほとんどのシステムは、非常に簡単にディスクをフォーマットするためにパーティションを使用しますrootfsrecoveryWindowsのような他のものもありますが、swap私は簡単に保ちようとしました。

ブートローダがどのパーティションに存在するかを指定する標準を読みませんでした。私はそこにいることについて何も読んだことがありません持つブートパーティションになります。もちろん、パーティションを指定することはboot意味がありません。メモリにロードされ、最初のステップブートローダ(レガシー/ UEFI)によって実行される一部のパーティションのみが必要です。

だから私の質問は:最初のステップブートローダが2番目のステップブートローダをどのように見つけるのですか?できる:

  • パーティションテーブルが必要ですか?

  • ディスク(または起動するすべてのメディア)からパーティションテーブルを読み、各パーティションテーブルに起動可能なファイルがあることを確認しますか?

  • 2番目のステージのブートローダが最初のパーティションにあると思いますか?

私は上記のリストから2番目のものを仮定しますが、それは単なる推測です。私はLinuxをデフォルトのOSとして使用していますが、この初期ブートプロセスはOSに依存しないようです。

ベストアンサー1

レガシーシステム(BIOS)とUEFIは非常に異なるため、区別する必要があります。 UEFI以外のPCまたはレガシーモードで実行されているUEFI PCの起動プロセスは次のとおりです。まず、BIOSはMBRブートセクタをRAMにロードし、ブートコードの実行を開始します。ブートセクタの長さは512バイトにすぎず、パーティションテーブルも含むため、最も単純なファイルシステムの内部構造を理解するコードもブートセクタに含めることはできません。 GRUBは、ハードドライブのセクタ1-62に追加のコードをインストールしてこの問題を解決します。ドライブのこの領域は、ブートセクタと最初のパーティションの先頭の間にある「無人の土地」です。いわゆる「Stage 1.5」はファイルシステムからファイルを読み込み、GRUB Stage 2および/bootディレクトリから設定ファイルをロードできます。

マザーボードフラッシュメモリのファームウェアはBIOSの初期から発展してきました。 BIOSは固定装置セットの最初のセクタを読み取ることができるが、最新のUEFIシステムはファームウェアから直接FAT32ファイルシステムを理解する。 UEFIシステムが起動したら、まずEFIシステムパーティションを探します。システムパーティションを含むディスクにはGPT(GUIDパーティションテーブル)が必要です。システムパーティションは固定GUIDとして識別されます。システムパーティションは、ファームウェアがブートローダを読み込んで実行するFAT32パーティションである必要があります。あるいは、ロードされる最初のプログラムは、ユーザーが実行するブートローダー(および対応するオペレーティングシステム)を選択できるブートマネージャーでもあります。マザーボードの不揮発性メモリに保存されている変数を使用してUEFIを設定することもできます。

おすすめ記事