补充说明
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