
virt-firmware v26.8.1
UEFIファームウェアボリュームと変数ストアのデコード、検査、および変更のためのツールキット。セキュアブート証明書の登録、PEバイナリの署名解析、および仮想化環境向けのEFI変数管理をサポートします。
ovmf / armvirt ファームウェアボリューム向けツール
これは edk2 ファームウェアイメージ向けの小さなツール集です。ファームウェアボリュームの内容をデコードして表示する機能を提供します。 変数ストア (OVMF_VARS.fd) は変更可能で、例えばセキュアブート証明書を登録するために使用できます。
virt-fw-dump
ファームウェアボリュームの内容をデコードして表示します。
使い方: virt-fw-dump -i <file>。
詳細は virt-fw-dump --help を試してください。出力をフィルタリングするオプションがいくつかあります。
virt-fw-vars
変数ストアボリュームを表示・編集します。 現時点では、証明書の登録とセキュアブートの有効化に重点を置いています。
変数の表示: virt-fw-vars -i <file> --print。
証明書の登録:
virt-fw-vars \
--input <template> \
--output <vars> \
--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 にコメントします。スペルチェックは得意です。役に立つ提案をしたり、パッチの不整合を指摘したりすることもあります。しかし、テストケースでの細かいエラーチェックのような馬鹿げた要求をすることもあります。また、実際には発生し得ないエラー条件のチェックを提案することもありますが、ボットはそれを理解できるほど賢くはないようです。どちらの方法を選ぶかは好みや個人的な趣味の問題であるようなコード再構成を提案することもあります。
というわけで、ボットをあまり真に受けすぎないでください。