5
1

More than 3 years have passed since last update.

QEMUでゲストをSecure Bootする

Last updated at Posted at 2020-11-11

qemu-system-x86-64 ならびに qemu-system-i386 でゲストOSをセキュアブートする手順です。

  1. QEMUでUEFI起動するときに使うBIOS ROMであるOVMFで、セキュアブート対応になっているものをどこかから入手する。手っ取り早い方法は Fedora 33 などから抜いてくることで、例えば https://github.com/emojifreak/qemu-arm-image-builder/tree/main/OVMF-Fedora にある。Debian/Ubuntuのパッケージはダメダメで以下の手順では動かないからお勧めしない。自分でOVMFをコンパイルしなおす場合は セキュアブートできるOVMFをソースからコンパイルする を参照。
  2. 上記のgithubフォルダにあるOVMF_VARS.secboot.fdはゲストごとにコピーを取って使う前提なのでコピーする。その上で以下のどちらかのようにqemuを起動する。KVMが使えるなら -enable-kvm も付ける。
  • qemu-system-x86_64 -machine q35,smm=on -global driver=cfi.pflash01,property=secure,value=on -drive if=pflash,format=raw,unit=0,file=OVMF_CODE.secboot.fd,readonly=on -drive if=pflash,format=raw,unit=1,file=OVMF_VARS.secboot.fd (64bitゲストOS用)
  • qemu-system-i386 -machine q35,smm=on -global driver=cfi.pflash01,property=secure,value=on -drive if=pflash,format=raw,unit=0,file=OVMF32_CODE.secboot.fd,readonly=on -drive if=pflash,format=raw,unit=1,file=OVMF32_VARS.secboot.fd (32bitゲストOS用)

ゲストOSがLinuxならdmesg コマンドで secure boot is enabled とか kernel is locked down とか表示されます。


virt-manager を用いる場合、「インストールの前に設定をカスタマイズする」↓を選び、

Screenshot from 2020-11-13 05-14-38.png

チップセットに「Q35」を選びます。Firmwareに何を選べば良いかはディストーションに依存して変わりますが、Fedora 33の場合OVMF_CODE.secboot.fdを選びます。2020年11月以降のDebian Bullseyeなら普通にovmfパッケージを入れてOVMF_CODE_4M.ms.fdを選べば正常にセキュアブートします。

Screenshot from 2020-11-13 05-17-15.png

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1