.. post:: 2016-09-04
:tags: KVM, Linux, QEMU, libvirt
:category: VIRTUAL
:author: usaturn
:location: Japan
:language: ja
====================
libvirt の UEFI 設定
====================
概要
====
:ref:`build_uefi_for_qemu` で作成した仮想マシン用の UEFI ファームウェアを libvirt の仮想マシンに設定する
下記にビルドしたとして手順を進める ::
edk2/Build/OvmfX64/DEBUG_GCC49/FV/OVMF_CODE.fd
edk2/Build/OvmfX64/DEBUG_GCC49/FV/OVMF_VARS.fd
ファームウェアの配置
====================
ドメイン(libvirt に登録した仮想マシン)がファームウェアを読みだす為の共通のディレクトリを作成し、配置する ::
mkdir -p /usr/share/OVMF
cp -ip Build/OvmfX64/DEBUG_GCC49/FV/OVMF_CODE.fd Build/OvmfX64/DEBUG_GCC49/FV/OVMF_VARS.fd /usr/share/OVMF
qemu.conf の書き換え
====================
QEMU の設定にファームウェアの配置場所を記載する ::
vim /etc/libvirtd/qemu.conf
nvram = [
"/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd",
]
ドメインの設定ファイルへの記述
==============================
ドメイン(libvirt に登録した仮想マシン)の設定ファイルを UEFI を利用するように書き換える ::
virsh edit [ドメイン名]
hvm
/usr/share/OVMF/OVMF_CODE.fd
# ドメインを起動し、nvram の記述が書き換わる事を確認する
virsh start [ドメイン名]
virsh edit [ドメイン名]
# 表示例
/var/lib/libvirt/qemu/nvram/vmbase_VARS.fd
.. warning:: ドメインをクローンする場合の注意
- UEFI の起動エントリは NVRAM ファイルに書き込まれる為、ドメインのクローンを作成する場合は ``[ドメイン名]_VARS.fd`` もコピーし設定も書き換える必要がある。
NVRAM をコピーせずに新規のファイルを使う場合は起動エントリがない為、仮想ディスクに OS をインストールしていても起動しない事に注意する。
おまけ
======
qemu コマンドでの指定 ::
mv OVMF.fd bios.bin
qemu-system-x86_64 -enable-kvm -net none -m 1024 -drive file=/usr/share/ovmf/x86_64/bios.bin,format=raw,if=pflash,readonly