virt-fw-vars1
Manual page for virt-fw-vars 26.10
Overview
The virt-fw-vars utility can print and modify UEFI variable stores. Supported formats are standard edk2 (as used by ovmf and armvirt) and aws.
usage: virt-fw-vars [-h] [-l LEVEL] [-i FILE] [--inplace FILE]
- [--extract-certs] [-d VAR] [--set-true VAR]
-
[--set-false VAR] [--set-json FILE] [--set-boot-uri LINK] [--append-boot-filepath FILE] [--set-shim-debug] [--set-shim-verbose] [--set-fallback-verbose] [--set-fallback-no-reboot] [--set-sbat-level FILE] [--set-pk GUID FILE] [--add-kek GUID FILE] [--add-db GUID FILE] [--add-db-hash GUID HASH] [--set-dbx FILE] [--add-dbx FILE] [--add-dbx-cert GUID FILE] [--add-dbx-hash GUID HASH] [--add-mok GUID FILE] [--add-mok-hash GUID HASH] [--enroll-redhat] [--enroll-microsoft] [--enroll-cert CERT] [--enroll-generate CN] [--enroll-mgmt] [--no-microsoft] [--microsoft-db {none,win11,win23,win+rom23,uefi11,uefi23,uefi+rom23,redhat,redhat+rom,all}] [--microsoft-kek {none,2011,2023,all}] [--distro-keys DISTRO] [--distro-list] [--sb] [-p] [-v] [--hashes] [-x] [-o FILE] [--output-aws FILE] [--output-json FILE] [--output-auth DIR]
Print and modify EFI variable stores.
options:
-
-h, --help -
show this help message and exit
-
-l, --loglevel LEVEL -
set loglevel to LEVEL
-
-i, --input FILE -
read edk2 or aws vars from FILE
-
--inplace, --in-place FILE -
modify FILE in place
-
--extract-certs -
extract all certificates
Variable options:
-
-d, --delete VAR -
delete variable VAR, can be specified multiple times
-
--set-true VAR -
set variable VAR to true, can be specified multiple times
-
--set-false VAR -
set variable VAR to false, can be specified multiple times
-
--set-json FILE -
set variables from json dump FILE
Boot configuration:
-
--set-boot-uri LINK -
set network boot uri to LINK (once, using BootNext)
-
--append-boot-filepath FILE -
append boot entry for FILE (permanent, using BootOrder)
shim.efi configuration:
-
--set-shim-debug -
enable shim.efi debugging (pause for debugger attach)
-
--set-shim-verbose -
enable shim.efi verbose messages
-
--set-fallback-verbose -
enable fallback.efi verbose messages
-
--set-fallback-no-reboot -
disable rebooting for fallback.efi
-
--set-sbat-level FILE -
set SbatLevel variable
Secure boot setup options:
--set-pk,--set-pk-certGUID FILE-
set PK to x509 cert, loaded in pem or der format from FILE and with owner GUID
--add-kek,--add-kek-certGUID FILE-
add x509 cert to KEK, loaded in pem or der format from FILE and with owner GUID, can be specified multiple times
--add-db,--add-db-certGUID FILE-
add x509 cert to db, loaded in pem or der format from FILE and with owner GUID, can be specified multiple times
--add-db-hashGUID HASH-
add sha256 HASH to db, with owner GUID, can be specified multiple times
-
--set-dbx FILE -
initialize dbx with update from FILE
-
--add-dbx FILE -
append dbx update from FILE
--add-dbx-certGUID FILE-
add x509 cert to dbx, loaded in pem or der format from FILE and with owner GUID, can be specified multiple times
--add-dbx-hashGUID HASH-
add sha256 HASH to dbx, with owner GUID, can be specified multiple times
--add-mok,--add-mok-certGUID FILE-
add x509 cert to MokList, loaded in pem or der format from FILE and with owner GUID, can be specified multiple times
--add-mok-hashGUID HASH-
add sha256 HASH to MokList, with owner GUID, can be specified multiple times
Secure boot convinience shortcuts:
-
--enroll-redhat -
enroll default certificates for redhat platform
-
--enroll-microsoft -
enroll default certificates for microsoft oem platform
-
--enroll-cert CERT -
enroll using specified certificate
-
--enroll-generate CN -
enroll using generated cert with given common name
-
--enroll-mgmt -
enroll using external management guid
-
--no-microsoft -
same as "--microsoft-db none"
-
--microsoft-db, --profile {none,win11,win23,win+rom23,uefi11,uefi23,uefi+rom23,redhat,redhat+rom,all} -
choose microsoft db keys to enroll
-
--microsoft-kek {none,2011,2023,all} -
choose microsoft KEK keys to enroll
-
--distro-keys DISTRO -
add ca keys for DISTRO
-
--distro-list -
list known distros
-
--sb, --secure-boot -
enable secure boot mode
Print options:
-
-p, --print -
print varstore
-
-v, --verbose -
print varstore verbosely
-
--hashes -
print signature db sha256 hashes
-
-x, --hexdump -
print variable hexdumps
Output options:
-
-o, --output FILE -
write edk2 or aws vars to FILE, using the same format the
--inputFILE has.
-
--output-aws FILE -
write aws vars to FILE
-
--output-json FILE -
write json dump to FILE
-
--output-auth DIR -
write *.auth files to DIR
Examples
- Print variable store.
-
virt-fw-vars --input ${guest}_VARS.fd \
--print --verbose
- Enroll default (microsoft) secure boot certificates
-
virt-fw-vars --input OVMF_VARS.fd \
--output OVMF_VARS.secboot.fd \
--enroll-redhat \
--secure-boot
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.
--add-dbx since Arch Linux 2026-11-01;
--enroll-mgmt since Arch Linux 2026-11-01;
--enroll-microsoft since Arch Linux 2026-11-01;
--hashes since Arch Linux 2026-11-01;
--microsoft-db since Arch Linux 2026-11-01;
--output-auth since Arch Linux 2026-11-01;
--profile since Arch Linux 2026-11-01.