/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-3f3e36b20da9
NameBootFromUSB
と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変数を書き込むことができます。特定の変数を上書きするとシステムが破損する可能性があるため、これを行うときは注意してください。
答え2
EFIvarはUEFI仕様の一部であり、一部の変数名は特別な意味を持ちますが、ほとんどはUEFIファームウェア開発者が決定したものになる可能性があります。