Heng30的博客
搜索 分类 关于 订阅

如何使用qemu启动edk2?

2025-04-02

OVMF(Open Virtual Machine Firmware) 是一款开源的UEFI固件实现,专为虚拟化环境(如QEMU/KVM、Xen等)设计。它允许虚拟机直接使用 UEFI(统一可扩展固件接口) 启动,替代传统的 BIOS 固件,支持现代操作系统的特性(如Secure Boot、GPT磁盘等)。

特点

  • OVMF 是基于Intel的EDK II(EFI Development Kit II)项目开发的,遵循UEFI规范。

  • 支持虚拟化平台: 主要用于QEMU/KVM、Xen等虚拟化解决方案,默认被许多虚拟化工具(如 libvirt)集成。

  • 功能丰富

    • 支持UEFI启动(如 Windows 11 要求 UEFI + Secure Boot)。
    • 提供Secure Boot(安全启动)功能。
    • 兼容GPT分区表(支持大容量磁盘)。
    • 支持图形化界面(GOP),方便虚拟机显示输出。

场景

  • 在Linux KVM中运行需要UEFI的Guest OS(如 Windows 10/11、现代Linux发行版)。

  • 开发测试 UEFI 应用或操作系统。

下载

  • 下载edk2。选择下载edk2.git-ovmf-x64-xxxx.rpm安装包。

  • 解压:rpm2cpio edk2.git-ovmf-x64-xxxx.rpm | cpio -idv

./usr/share/doc/edk2.git-ovmf-x64
./usr/share/doc/edk2.git-ovmf-x64/README
./usr/share/edk2.git
./usr/share/edk2.git/ovmf-x64
./usr/share/edk2.git/ovmf-x64/MICROVM.fd
./usr/share/edk2.git/ovmf-x64/OVMF-need-smm.fd
./usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fd
./usr/share/edk2.git/ovmf-x64/OVMF-with-csm.fd
./usr/share/edk2.git/ovmf-x64/OVMF_CODE-need-smm.fd
./usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd
./usr/share/edk2.git/ovmf-x64/OVMF_CODE-with-csm.fd
./usr/share/edk2.git/ovmf-x64/OVMF_VARS-need-smm.fd
./usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd
./usr/share/edk2.git/ovmf-x64/OVMF_VARS-with-csm.fd
./usr/share/edk2.git/ovmf-x64/UefiShell.iso
./usr/share/qemu/firmware/80-ovmf-x64-git-need-smm.json
./usr/share/qemu/firmware/81-ovmf-x64-git-pure-efi.json
./usr/share/qemu/firmware/82-ovmf-x64-git-with-csm.json
  • 复制文件:cp ./usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fd biso64.bin

无操作系统

qemu-system-x86_64 \
    -bios biso64.bin \
    -net none \
    -nographic
  • 查看帮助:help

  • 跳转到设置:exit

  • 关闭qemu:Ctrl+A -> C -> quit

  • 取消qemu捕获鼠标:Ctrl+Alt+G

启动操作系统

  • 生成磁盘文件:qemu-img create -f qcow2 vm_disk.img 20M

  • 安装ubuntu:

qemu-system-x86_64 \
    -enable-kvm \
    -m 4G \
    -smp 4 \
    -bios biso64.bin \
    -cdrom ubuntu-24.04.1-desktop-amd64.iso \
    -drive file=vm_disk.img,format=qcow2
  • 启动ubuntu:
qemu-system-x86_64 \
    -enable-kvm \
    -m 4G \
    -smp 4 \
    -bios biso64.bin \
    -drive file=vm_disk.img,format=qcow2

总结

OVMF是虚拟化环境中运行 UEFI 系统的关键组件,提供了接近物理机的 UEFI 支持,适用于现代操作系统和开发需求。