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,因此非标准化的已知 UEFI 变量的 efivarfs 文件被创建为不可变文件。 这不会阻止删除 - “chattr -i” 会起作用 - 但它确实防止了意外完成此类失败。

警告

当显示/sys/firmware/efi/efivars 中 UEFI 变量的内容时,例如使用“hexdump”,请注意输出的前 4 个字节代表 UEFI 变量属性,以小端格式表示。

实际上,每个 efivar 的输出由以下部分组成:

4_bytes_of_attributes + efivar_data

另请参阅