Efivarfs

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Efivarfs and the translation is 100% complete.
This article is a stub. Please help out by expanding it - how to get started.
Other languages:
Resources

Az efivarfs egy fájlrendszer a Linux kernelben, amely lehetővé teszi a felhasználók számára az (U)EFI változók létrehozását, törlését és módosítását. Az efivarfs általában (és automatikusan) a /sys/firmware/efi/efivars helyre van felcsatolva a fájlrendszerben. Ha kézzel kell felcsatolni, akkor a következő parancs használható:

root #mount -t efivarfs none /sys/firmware/efi/efivars

Bevezetés

Az efivarfs azért jött létre, hogy kezelje a sysfs bejegyzések használatának hiányosságait az EFI változók kezelésében: a régi sysfs EFI változók kódja csak legfeljebb 1024 bájt méretű változókat támogatott. Ez eredetileg az EFI specifikáció 0.99-es verziójának egy korlátja volt, amelyet eltávolítottak, mielőtt bármilyen teljes kiadás megjelent volna[1].

Note
Számos firmware hibák miatt, ahol a nem szabványos UEFI változók eltávolítása a rendszer firmware-jét POST hibához vezeti, az efivarfs fájlok, amelyek nem jól ismert szabványosított változók, immutable fájlként jönnek létre.
Tip
Amikor egy UEFI változó tartalmát a /sys/firmware/efi/efivars útvonalon megtekintjük, figyeljünk az output első 4 bájtjára - ezek little-endian formátumban az UEFI változó attribútumait képviselik. Gyakorlatilag minden efivar a következő formátumú: 4_bytes_of_attributes + efivar_data.

Kernel

Szükséges az CONFIG_EFIVAR_FS támogatás engedélyezése:

KERNEL EFI változó fájlrendszer támogatás engedélyezése
Device Drivers  --->
   Firmware Drivers  --->
      [ ] Disable EFI runtime services support by default
File systems  --->
   Pseudo filesystems  --->
       <*> EFI Variable filesystem

Hibaelhárítás

EFI-CSM: BIOS mód

Az x86 esetében az UEFI szoftver felváltotta a hagyományos BIOS szoftvert, hogy lehetővé tegye a visszafelé kompatibilitást az átmeneti időszakban. Az UEFI az x86 architektúrán egy BIOS-emulációt, az úgynevezett Compatibility Support Module (CSM) lehetőséget is tartalmazott. Amikor az EFI-CSM aktiválva van és használatban van, úgy viselkedik, mint egy hagyományos BIOS, beleértve az UEFI eszközök elrejtését az operációs rendszer elől.

Tip
Ha ez a fájlrendszer nem létezik UEFI-kompatibilis hardveren, akkor valószínűleg azt jelenti, hogy a hardvert Örökölt (BIOS) módban van, azaz EFI-CSM módban indították el.

A legtöbb esetben biztonságosan feltételezhető, hogy egy 2020 után gyártott számítógép vagy laptop tisztán UEFI rendszerű, amely nem lehet BIOS módban. További érdekességként említjük, hogy amikor a Secure Boot engedélyezve van, az EFI-CSM automatikusan deaktiválódik.

EFI runtime unavailable

Vagyis "EFI futásidejű szolgáltatás nem érhető el". Minden (U)EFI funkció letiltható az efi=noruntime kernel paraméterrel, vagy aktiválható az efi=runtime paraméterrel. Az EFI futásidejű funkciók nélkül indított kernel nem lesz képes semmilyen EFI beállítást vagy változót módosítani, beleértve a rendszerindítási beállítást is.

További olvasnivaló a témában

  • Efibootmgr — egy eszköz az UEFI rendszerindító bejegyzések kezelésére.

Hivatkozások