我尝试在 QEMU-KVM 中测试这一点:
https://www.knopper.net/knoppix/knoppix-uefi-en.html
我的主机操作系统是 Debian 11 AMD64。我有奥维.deb 包已成功安装。我像这样将 OVMF 添加到我的虚拟机中,但安全启动不起作用,只有 UEFI:
kvm \
-bios /usr/share/qemu/OVMF.fd \
-monitor stdio \
-cpu host \
-smp cores=4,threads=2 \
-k en \
-machine accel=kvm \
-m 4096 \
-hda Knoppix.9.2.qcow2 \
-net nic -net user \
-usb -device usb-tablet \
-rtc base=localtime \
-name "Knoppix 9.2"
在物理 UEFI 中,Knoppix 9.2 的安全启动运行良好。
提前致谢。
答案1
OVMF 文档指出,-pflash
如果您想要安全启动,则必须使用该参数:
- 使用 OVMF 进行 QEMU 固件(有 3 个选项可用)
- 选项 1:QEMU 1.6 或更新版本;使用 QEMU -pflash 参数
- QEMU/OVMF 将使用模拟闪存,并完全支持 UEFI 变量
- 使用以下命令运行 qemu:-pflash path/to/OVMF.fd
- 请注意,运行启用 SecureBoot 的版本 (-D SECURE_BOOT_ENABLE) 需要此选项。
这Debian 维基页面建议您还需要一些 EFI 变量文件。完整的调用可能看起来有点像这样:
qemu-system-x86_64 \
-accel kvm \
-smp 2 \
-m 2048 \
-machine pc-q35-2.5 \
-drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE_4M.secboot.fd \
-drive if=pflash,format=raw,file=./OVMF_VARS_4M.ms.fd \
-drive file=./ubuntu-21.10-desktop-amd64.iso,readonly=on,format=raw,index=0,media=cdrom \
-boot menu=on
请注意,由于 EFI 变量可以(并且将会)更改,因此您需要自己的文件副本。固件不会更改,因此您不必将其复制到本地。根据您的 Linux 发行版,您可能有一个启用了安全启动的单独 OVMF 代码文件。