/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
Name BootFromUSB
및 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 펌웨어 개발자가 결정하는 대로 될 수 있습니다.