/sys/firmware/efi/efivars/ 中的条目是什么?
我看到它们是小的二进制文件。是这些地址和地址的内容吗?例如 /sys/firmware/efi/efivars/BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 十六进制显示
000000000: 0700 0000 00 ....
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
这些是 efivars 文件系统中的文件,可让您访问 UEFI 变量。对于每个 UEFI 变量,在/sys/firmware/efi/efivars/
.
您的示例BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
具有 NameBootFromUSB
和 VendorGuid ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
。GUID 确保具有相同名称但来自不同供应商的变量不会干扰。UEFI 规范中定义了一些变量,但不是这个。
内容的前四个字节是属性,在 UEFI 规范中也有定义。最重要的是
#define EFI_VARIABLE_NON_VOLATILE 0x00000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
Run Code Online (Sandbox Code Playgroud)
所以你的变量是非易失性的,可以在启动和运行时访问。
任何剩余的字节都是变量的值。在这种情况下,只有一个值为 0 的字节。
您可以使用 UEFI 变量来影响引导过程。例如,当标准固件不起作用时,我们使用这样的变量将下一次引导切换到替代恢复固件。
请注意,efivars
文件系统允许您通过写入文件来写入 EFI 变量。执行此操作时要小心,因为覆盖某些变量可能会使您的系统变砖。
归档时间: |
|
查看次数: |
6834 次 |
最近记录: |