web-dev-qa-db-ja.com

UEFI検出(ESP)

UEFIブートマネージャーは、すべてのストレージで [〜#〜] esp [〜#〜] sを検出しますか [〜#〜] gpt [〜#〜] s NVRAMに保存されているグローバルスコープ変数(ブート構成)に基づくデバイス?


ウィキペディアから EFIブート を読む:

BIOSとは異なり、UEFIはブートセクターに依存せず、代わりにUEFI仕様の一部としてブートマネージャーを定義します。コンピューターの電源がオンになると、ブートマネージャーはブート構成を確認し、その設定に基づいて、指定されたオペレーティングシステムローダーまたはオペレーティングシステムカーネルをロードして実行します。ブート構成は、オペレーティングシステムローダーまたはカーネルへのパスを示すブート変数を含む、NVRAMに格納されているグローバルスコープ変数のセットです。これらは、UEFIアプリケーションのコンポーネントクラスとして、ファームウェアでアクセス可能なEFIシステムパーティションにファイルとして格納されます。 (ESP)。

UEFIは、構成(NVRAMに格納されているグローバルスコープ変数のセット)をチェックする "boot manager"に依存しています。この構成には、 "UEFIアプリケーション"のコンポーネントであるOSローダー/カーネルへのパス( [〜#〜 ] esp [〜#〜] --akaGPT Partition(1)using FAT(12 | 16 | 32)File Format


EFI仕様ブートマネージャーセクションを見る:

GPTレイアウト:

enter image description here

ESPを含むGPT:

enter image description here

仕様の117,118ページにある図

4
Jordan Davis

UEFIブートマネージャーは、(NVRAMに格納されている)EFI変数から構成を読み取ります。構成されたエントリと構成されたブートブート順序に応じて、各ストレージデバイスでESPを検索する可能性があります。

たとえば、2つのストレージデバイスがあり、それぞれに次のような一般的なエントリがある場合

PciRoot(0x0)/Pci(0x5,0x0)    # or
PciRoot(0x0)/Pci(0x1,0x1)/Ata(1,0,0)

そして、それらは両方ともブート順序で参照され、UEFIブートマネージャーは両方をプローブして ESP を探します。

また、UEFI仕様では、ファームウェアが、新しく検出されたストレージデバイスごとに起動ごとにいくつかの汎用エントリを自動追加することを禁止していません。したがって、システムによっては、デフォルトで、検出されたストレージデバイスでESPを自動検出することになります。

UEFI仕様では、ファームウェアがEFIシステムパーティションを使用しないESP GUID(C12A7328-F81F-11D2-BA4B-00A0C93EC93B))を検出することもできます。 [〜#〜] gpt [〜#〜] パーティションとFATファイルシステムおよびEFI/BOOTの下の予想されるファイル(例:x8664ビットシステムのBOOTX64.EFI )::

UEFIは、システム上に存在できるシステムパーティションの数や場所に制限を課しません。システムパーティションは、UEFIファームウェアで必要な場合に、パーティションGUIDを調べ、パーティションの内容がセクション13.3.1.1で定義されているFATファイルシステムに準拠していることを確認することで検出されます。さらに、UEFI実装はESP GUIDを使用しない適合FATパーティションの使用を許可します。パーティション作成者は、パーティション属性のビット1を設定することにより、UEFIファームウェアが特定のパーティションを調べて使用するのを防ぐことができます(5.3.3を参照)。 )潜在的なESPとしてパーティションを除外します。

(UEFI仕様バージョン2.7エラッタA、セクション13.3.3システムパーティションの数と場所、516ページ)

たとえば、Supermicroと Qemu UEFIファームウェア これを行います。

1
maxschlepzig