Uefi
/sys/firmware/efi/efivars/ 中的 efi 變數條目
/sys/firmware/efi/efivars/ 中有哪些條目?
我看到它們是小的二進製文件。是這些地址和地址的內容嗎?例如 /sys/firmware/efi/efivars/BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 以十六進制顯示
000000000: 0700 0000 00 ....
這是什麼意思?
這些是 efivars 文件系統中的文件,可讓您訪問 UEFI 變數。對於每個 UEFI 變數,在
/sys/firmware/efi/efivars/
.您的範例
BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
具有 NameBootFromUSB
和 VendorGuidec87d643-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
所以你的變數是非易失性的,可以在啟動和執行時訪問。
任何剩餘的字節都是變數的值。在這種情況下,有一個值為 0 的字節。
您可以使用 UEFI 變數來影響引導過程。例如,當標準韌體不起作用時,我們使用了這樣的變數來將下次引導切換到替代恢復韌體。
請注意,
efivars
文件系統允許您通過寫入文件來寫入 EFI 變數。執行此操作時要小心,因為覆蓋某些變數可能會破壞您的系統。