返回更新列表
新发布Aug 23, 2026

virt-firmware v26.8.1

用于解码、检查及修改 UEFI 固件卷和变量存储的工具包。支持安全启动证书注册、PE 二进制签名分析以及虚拟化环境中的 EFI 变量管理。

分享

OVMF / armvirt 固件卷的工具

这是一个用于 edk2 固件镜像的小型工具集合。它们支持解码和打印固件卷的内容。变量存储(OVMF_VARS.fd)可以被修改,例如用于注册安全启动证书。

virt-fw-dump

解码并打印固件卷的内容。

用法:virt-fw-dump -i <文件>

更多信息请尝试 virt-fw-dump --help,包含一些用于过滤输出的选项。

virt-fw-vars

打印和编辑变量存储卷。 目前专注于注册证书和启用安全启动。

打印变量:virt-fw-vars -i <文件> --print

注册证书:

virt-fw-vars \
    --input <模板> \
    --output <变量> \
    --enroll-redhat \
    --secure-boot

更多用法信息请尝试 virt-fw-vars --help

virt-fw-vars 可以处理 edk2 变量存储(即闪存固件卷)和 AWS uefi 变量存储。输入格式会自动检测,输出也会使用相同的格式。

使用 edk2 变量存储时,需要固件卷作为输入。通常使用构建 OVMF 时创建的 OVMF_VARS.fd 文件(它是一个空的变量存储)。

aws 变量存储也可以从头创建并通过 --output-aws 选项写入文件。

virt-fw-sigdb

打印和编辑 efi 签名数据库文件,示例:

virt-fw-sigdb -i /etc/pki/ca-trust/extracted/edk2/cacerts.bin --print

更多用法信息请尝试 virt-fw-sigdb --help

host-efi-vars

从 linux efivarfs 读取 efi 变量并解码/打印它们。

kernel-bootcfg

在使用直接引导(没有引导加载程序如 grub 或 systemd-boot)时,管理 UKI(统一内核镜像)的 efi 启动配置。

pe-dumpinfo

用于 pe(efi 使用的格式)二进制文件的信息转储。

pe-listsigs

列出 pe 二进制文件的签名和证书链。 也可以提取证书和签名。

使用 python 模块

目前文档不多,抱歉。开始学习的最佳代码阅读路径可能是测试用例(参见 tests/tests.py)和 virt-fw-vars 工具的代码(参见 virt/firmware/vars.py)。

安装

发布版:pip3 install virt-firmware

快照版:pip3 install git+https://gitlab.com/kraxel/virt-firmware.git

TODO 列表

  • 添加更多文档。

贡献

我接受 MR 请求。

仓库上有一个 AI 审查机器人,会对 MR 进行评论。它擅长拼写检查。有时它会提供有用的建议或捕捉补丁中的不一致之处。有时它会要求一些愚蠢的事情,比如测试用例中的细致错误检查。有时它会建议检查不可能发生的错误条件,但机器人显然不够聪明无法看出这一点。有时它会建议代码重组,这更多是品味或个人偏好的问题,取决于你选择哪种方式。

所以,不要太把机器人当回事。

分类