efivarfs - 一个 (U)EFI 变量文件系统¶
创建 efivarfs 文件系统的目的是为了解决使用 sysfs 中的条目来维护 EFI 变量的缺点。旧的 sysfs EFI 变量代码仅支持最大 1024 字节的变量。此限制存在于 EFI 规范的 0.99 版本中,但在任何正式版本发布之前已删除。由于现在变量可能大于单个页面,因此 sysfs 不是此操作的最佳接口。
可以使用 efivarfs 文件系统创建、删除和修改变量。
efivarfs 通常像这样挂载
mount -t efivarfs none /sys/firmware/efi/efivars
由于存在许多固件错误,其中删除非标准的 UEFI 变量会导致系统固件无法通过 POST,因此非众所周知的标准化变量的 efivarfs 文件被创建为不可变文件。这不会阻止删除 - “chattr -i” 将起作用 - 但它可以防止意外地完成这种故障。
警告
当显示 /sys/firmware/efi/efivars 中 UEFI 变量的内容时,例如使用“hexdump”,请注意输出的前 4 个字节代表 UEFI 变量属性,以小端格式表示。
实际上,每个 efivar 的输出由以下组成
4_字节_属性 + efivar_数据
另请参阅
Documentation/ABI/removed/sysfs-firmware-efi-vars