Linux 命令速查
系统管理 man efivar

efivar

读取和写入 UEFI 变量

返回

补充说明

efivar 是 efivar 项目提供的命令行工具,通过 /sys/firmware/efi/efivars 访问 UEFI 运行时变量,可列出、导出、导入、修改和删除变量。它比 efibootmgr 更底层,适合调试固件与启动配置。

常用 -l 列出变量名,-p 打印指定变量内容,-w 写入,-d 删除。变量由 GUID 和名称共同标识;工具支持用 -g 指定 GUID,或直接使用列表中的完整名称。写入需要 root 权限,且部分变量受固件保护只读。

注意:随意删除或改写固件变量可能导致无法启动,操作前先导出备份。不同固件对变量大小和属性支持不一;容器或非 UEFI 系统上不可用。

变量名中的 GUID 通常为 8be4df61-93ca-11d2-aa0d-00e098032b8c(EFI 全局变量 GUID)。查看属性可判断变量是否可在运行时访问、是否易失。

语法

efivar [选项]

选项

  • -l / --list:列出所有变量;
  • -p / --print:打印变量内容;
  • -n 名称:指定变量名;
  • -g GUID:指定变量 GUID;
  • -a / --attributes:显示变量属性;
  • -w / --write:从标准输入写入变量;
  • -d / --delete:删除变量;
  • -e / --export:导出变量;
  • -i / --import:导入变量。

实例

# 列出所有 UEFI 变量
sudo efivar -l

# 查看 BootOrder 变量
sudo efivar -p -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootOrder

# 备份变量内容
sudo efivar -p -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootOrder > bootorder.bin

# 从文件写入变量(谨慎)
sudo efivar -w -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootOrder < bootorder.bin

# 查看 SecureBoot 状态
sudo efivar -p -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SecureBoot

参考链接