/sys/firmware/efi/efivars/のefi変数エントリ

/sys/firmware/efi/efivars/のefi変数エントリ

/sys/firmware/efi/efivars/にはどのような項目がありますか?

私はそれらが小さなバイナリファイルであることがわかりました。これは住所と住所の内容ですか?たとえば、/sys/firmware/efi/efivars/BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9は16進数で表されます。

000000000: 0700 0000 00                             ....

どういう意味ですか?

ベストアンサー1

これは、UEFI変数にアクセスできるefivarsファイルシステムのファイルです。各UEFI変数について/sys/firmware/efi/efivars/

あなたの例にはBootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9NameBootFromUSBとVendorGuidがありますec87d643-eba4-4bb5-a1e5-3f3e36b20da9。 GUID は同じ名前ですが、ベンダーは他の変数が互いに干渉しないようにします。 UEFI仕様にはいくつかの変数が定義されていますが、この変数はそうではありません。

コンテンツの最初の4バイトは、UEFI仕様で定義されている属性です。最も重要なこと

#define EFI_VARIABLE_NON_VOLATILE       0x00000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
#define EFI_VARIABLE_RUNTIME_ACCESS     0x00000004

したがって、変数は不揮発性であり、起動時および実行時にアクセスできます。

残りのバイトは変数の値です。この場合、値が0のバイトがあります。

UEFI変数を使用して起動プロセスに影響を与えることができます。たとえば、標準ファームウェアが実行されていない場合は、次のブートを代替リカバリファームウェアに切り替えるためにこのような変数を使用します。

ファイルシステムを使用すると、efivarsファイルに書き込んでEFI変数を書き込むことができます。特定の変数を上書きするとシステムが破損する可能性があるため、これを行うときは注意してください。

おすすめ記事