私が理解したように、uefi BIOSはefiパーティションからgrub.efiをロードします。これで、/boot ディレクトリから複数の grub モジュールと設定ファイルがロードされます。
その後、grubは起動パーティションを持つ正しいデバイスをどのように見つけますか?以前のバージョンの grub では、通常、次のコマンドを使用して特定のパーティションに grub をインストールしました。
# grub-install --root-directory=/dev/sda
したがって、起動ディレクトリを見つける場所は非常に明確です。 grub-efiは正しいデバイスをどのように見つけますか?
答え1
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 ファイルに含まれていることを示します。
その後、EFIローダーはGrub2を実行し、デフォルトのカーネルを起動またはロードするオペレーティングシステム(カーネル)を選択するgrubインターフェースを取得します。
さらに拡張すると、「.EFI」ファイルはUEFIサブシステムが実行できるアプリケーションに似ています。システムを起動し、実行保護とウイルス対策タイプのプログラムを実行するのに便利な場所を提供するように設計されています。
彼らは「Unified Extensible Firmware Interface」にスケーラビリティを与えました。