web-dev-qa-db-ja.com

grub efiローダーはどのようにして正しいgrub.cfgとブートディレクトリを見つけますか?

私が理解しているように、uefi biosはefiパーティションからgrub.efiをロードします。これにより、/ bootディレクトリから一連のgrubモジュールと設定ファイルが読み込まれます。

しかし、grubはどのようにしてブートパーティションが存在する正しいデバイスを見つけますか? grubのレガシーでは、通常、特定のパーティションにgrubをインストールします。

# grub-install --root-directory=/dev/sda

したがって、ブートディレクトリを探す場所は非常に明確です。 grub-efiはどのようにして正しいデバイスを見つけますか?

9
user128063

Ghexを使用してefiパーティションの「BOOTX64.EFI」ファイルを調べた後、この行を見つけました。

search.fs_uuid a43d1f11-6ebe-477d-8be3-321a33bc37f9 root hd2,gpt4 
set prefix=($root)'/boot/grub'

これは、grub(ブートパーティション)の場所に関する情報が、grub2-installによってシステム用に生成されたBOOTX64.EFIファイルに埋め込まれていることを示しています。

次に、Grub2がEFIローダーによって実行され、grubインターフェイスを取得して、起動するオペレーティングシステム(カーネル)を選択するか、デフォルトのカーネルがロードされます。

少し拡張すると、「。EFI」ファイルは、UEFIサブシステムが実行できるアプリケーションのようなものです。システムの起動と、実行保護およびアンチウイルスタイプのプログラムを実行するための便利な場所の両方を提供することを目的としています。

彼らは「Unified Extensible Firmware Interface」に拡張機能を入れました

9
Joe