LinuCレベル3 プラットフォームスペシャリスト 仮想化基盤の構築 問36
仮想化基盤の構築/仮想化環境のセキュリティ設定KVM仮想マシンでUEFI Secure Bootを有効にする際、libvirtのドメインXMLには /usr/share/OVMF/OVMF_VARS.fd への参照を書くが、複数の仮想マシンが存在する場合はこのファイルをそのまま共有してはならない。その理由として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「仮想化基盤の構築」に対応。実際の試験問題ではありません)
- AOVMF_VARS.fdはUEFIファームウェアの実行コードを含む読み取り専用ファイルで、複数のVMが同時に参照すると書き込み競合で破損するから
- BOVMF_VARS.fdはUEFI NVRAMに相当し、Secure Bootの鍵(PK・KEK・db・dbx)やブート設定が書き込まれるため、VMごとに独立したコピーが必要だから
- COVMF_VARS.fdの内容はVMのUUIDを使って暗号化されており、別のVMが同じファイルを使うと証明書の検証に失敗して起動できなくなるから
- DlibvirtはOVMF_VARS.fdを起動のたびに自動的に初期状態に戻すため、複数のVMが共有すると以前に登録したSecure Boot設定が消えてしまうから
正解:B
解説
OVMF は UEFI ファームウェアの実装であり、OVMF_CODE.fd(読み取り専用のファームウェアコード)と OVMF_VARS.fd(書き込み可能な NVRAM)の2ファイルで構成されます。OVMF_VARS.fd は UEFI の不揮発性変数(Secure Boot の PK・KEK・db・dbx などの鍵情報、ブート順序など)を保存する領域で、VM の設定変更時にこのファイルへ書き込みが行われます。複数の VM がこのファイルを共有すると、一方の VM での鍵登録や設定変更が他の VM の設定を上書きしてしまいます。そのため、libvirt は通常 /usr/share/OVMF/OVMF_VARS.fd をテンプレートとして VM ごとのコピー(例: /var/lib/libvirt/qemu/nvram/vmname_VARS.fd)を作成します。
選択肢ごとの解説
- A誤り。ファームウェアの実行コードを含む読み取り専用のファイルは OVMF_CODE.fd です。OVMF_VARS.fd は書き込み可能な NVRAM で、書き込み競合ではなく設定の独立性が問題になります。
- B正しい。OVMF_VARS.fd は UEFI NVRAM に相当し、Secure Boot の鍵情報やブート設定が書き込まれます。VM ごとに独立したコピーを用意しないと、VM 間で設定が干渉します。
- C誤り。OVMF_VARS.fd の内容は VM の UUID で暗号化されていません。各 VM が独立したコピーを持つことで、設定の干渉を防ぐ仕組みになっています。
- D誤り。libvirt は OVMF_VARS.fd を起動のたびにリセットするわけではありません。各 VM の NVRAM コピーは永続的に保持されます。