虚拟机开 UEFI 的本质就是给虚拟主板换一块固件:VMware 在"虚拟机设置→选项→高级→固件类型"里选 UEFI,Hyper-V 直接新建第二代虚拟机,VirtualBox 勾选"启用 EFI",KVM 挂上 OVMF 固件文件,四条路殊途同归。先记住一个前提原系统如果是按 BIOS+MBR 装的,改完固件类型大概率进不了系统,这不是设置错了,是引导方式对不上。
先弄明白:虚拟机里的 UEFI 到底换了什么
物理机上,UEFI 是主板芯片里的一段固件,负责开机自检、初始化硬件、把控制权交给引导程序,虚拟机没有主板,但它模拟了一块"虚拟主板",这块板子上同样有一颗固件芯片只不过它是一段代码文件。
BIOS 固件走的是老路子:读 MBR 分区表里的引导扇区,找活动分区,跳转到操作系统的 bootmgr,UEFI 固件走的是新路子:读 GPT 分区表里的 EFI 系统分区(ESP),执行里面的 .efi 引导文件,Windows 的 \EFI\Microsoft\Boot\bootmgfw.efi。
这个差别带来三个直接影响:GPT 分区表突破了 2TB 单盘限制;UEFI 支持安全启动(Secure Boot);开机流程更短,跳过了一堆传统自检环节,Windows 11 强制要求 UEFI+安全启动+TPM 2.0,这也是近两年问"虚拟机怎么 UEFI"的人突然变多的直接原因。
判断一台虚拟机现在是不是 UEFI,方法很直接:Windows 里按 Win+R 输入 msinfo32,看"BIOS 模式"一栏写的是"传统"还是"UEFI";Linux 里执行 ls /sys/firmware/efi,目录存在就是 UEFI 启动。
虚拟机开启 UEFI 启动模式怎么设置
不同虚拟化平台的入口差别挺大,下面按使用频率逐个说。
VMware Workstation:改个固件类型就行
虚拟机关机状态下,右键"设置"→"选项"→"高级"→"固件类型",把"BIOS"换成"UEFI",较新版本还会多出一个"启用安全启动"的复选框,勾上之后虚拟机会加载微软签名的证书库,装 Windows 11 时系统检测就能通过。
如果习惯改配置文件,也可以直接编辑虚拟机目录下的 .vmx 文件,加两行:
firmware = "efi" uefi.secureBoot.enabled = "TRUE"
改完记得完全关机再开机,挂起的虚拟机不会重新加载固件,顺带提一句费用问题,虚拟机 UEFI 配置本身不产生任何额外授权成本,VMware Workstation Pro 目前对个人用户免费,VirtualBox 全程开源免费,Hyper-V 跟着 Windows 专业版走,不存在"开 UEFI 要加钱"这回事。
Hyper-V 二代虚拟机 UEFI 配置教程
Hyper-V 里没有"切换固件"这个动作,因为第二代虚拟机天生就是 UEFI,第一代则固定是传统 BIOS,所以正确的做法是新建时选"第二代",而不是去改已有虚拟机。
新建之后,启动顺序和安全启动在"设置→固件"里调,安全启动模板有三个选项:Microsoft Windows、Microsoft UEFI 证书颁发机构、开源,装 Windows 11 选第一个,装主流 Linux 发行版选第三个(开源模板)或第二个,用 PowerShell 更省事:
Set-VMFirmware -VMName "Win11-Test" -EnableSecureBoot On -SecureBootTemplate MicrosoftWindows
第二代虚拟机有个副作用要知道:不支持 IDE 控制器,也不支持从软盘和旧式网卡启动,老系统的安装镜像可能直接起不来。
VirtualBox 虚拟机 UEFI 支持情况
VirtualBox 的 EFI 实现在 6.x 之前比较简陋,7.0 以后才称得上可用,主要是补上了 TPM 2.0,开启路径是"设置→系统→主板",勾选"启用 EFI",注意要点"专家模式"才能看到这个选项。
命令行等价写法:
VBoxManage modifyvm "Win11" --firmware efi VBoxManage modifyvm "Win11" --tpm-type 2.0
要提醒的是,VirtualBox 的 UEFI 固件对安全启动的支持不如 VMware 完整,装 Windows 11 时若卡在"这台电脑不满足要求",多半是 TPM 或安全启动没配上,而不是固件类型选错了。
KVM / QEMU:手动挂 OVMF
Linux 上的 KVM 默认用 SeaBIOS,要 UEFI 得装 OVMF 固件包(Debian/Ubuntu 是 apt install ovmf,Fedora 是 dnf install edk2-ovmf),然后这样启动:
qemu-system-x86_64 -enable-kvm -m 4096 \ -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \ -drive if=pflash,format=raw,file=OVMF_VARS.fd
用 virt-manager 的话,新建虚拟机时勾选"在安装前自定义配置",然后在"概览→固件"下拉里选带 OVMF_CODE.fd 的那一项,业内专家指出,OVMF 的变量存储文件(VARS)最好每个虚拟机复制一份独立的,多个虚拟机共用一个会互相覆盖启动项。
VMware 虚拟机 UEFI 和 BIOS 启动有什么区别
这个对比是很多人踩坑的根源,直接列成表更清楚。
| 对比项 | BIOS 固件 | UEFI 固件 |
|---|---|---|
| 分区表 | MBR,单盘上限约 2TB | GPT,容量基本无上限 |
| 引导文件 | 活动分区里的引导扇区 | ESP 分区里的 .efi 文件 |
| 主分区数量 | 最多 4 个主分区 | 理论 128 个 |
| 安全启动 | 不支持 | 支持,需证书库 |
| 切换后旧系统 | 基本无法启动 | 基本无法启动 |
关键在于最后一行:双向切换都会让已装好的系统失联,因为固件换了,它去找引导程序的位置也换了,磁盘上原来的引导信息对不上号。
真要保留数据迁移,Windows 有一条可行路径:先把磁盘从 MBR 转成 GPT(mbr2gpt /validate /allowFullOS 验证,再去掉 validate 执行转换),然后进 PE 用 bcdboot C:\Windows /s S: /f UEFI 重建 ESP 分区里的引导文件,S 是挂载后的 EFI 分区盘符,Linux 则要重装 grub-efi 并重新生成引导项,操作有风险,动之前先做快照。
虚拟机安装 Win11 必须 UEFI 吗
是的,绕不过去,Windows 11 的硬件要求里明确写了需要 UEFI 固件、安全启动能力和 TPM 2.0,三者缺一,安装程序就会在兼容性检查那一步拦下来,在虚拟机里,这三项都得在宿主侧的虚拟机设置里打开,客户机内部没法补救。
具体清单:
- 固件类型设为 UEFI
- 开启安全启动
- 添加 TPM 2.0 设备(VMware 在"设置→硬件→添加→可信平台模块",Hyper-V 用
Set-VMKeyProtector配合启用加密,VirtualBox 用命令行加--tpm-type 2.0) - 内存给到 4GB 以上,磁盘 64GB 以上
国内不少开发团队在本地做 Win11 兼容性测试时,就是用这套组合在笔记本上跑虚拟机,省掉了一台实体机,行业共识认为,虚拟 TPM 的安全强度不能等同于硬件 TPM,但用于测试和开发是够的,别拿它存生产环境的密钥。
几个高频故障和排查顺序
改完 UEFI 开不了机,按这个顺序查:
- 确认虚拟机是彻底关机,不是挂起。 挂起状态恢复的是旧固件的内存镜像。
- 确认磁盘是 GPT。 UEFI 固件读不到 MBR 里的引导记录,会直接掉进 EFI Shell 或提示"No bootable device"。
- 确认 ESP 分区存在。 Windows 安装时如果整盘格式化,安装程序会自动按当前固件类型建对应分区;如果是先装系统后改固件,ESP 往往不存在。
- 安全启动证书冲突。 装某些 Linux 发行版时开了安全启动会报签名错误,临时关掉即可。
- 启动顺序错位。 Hyper-V 和 KVM 改完固件后启动项可能被重置,需要重新指定第一启动设备。
排查时优先看虚拟机自带的日志,VMware 在虚拟机目录下的 vmware.log,KVM 用 virsh dumpxml 域名 看当前实际生效的固件配置,比界面上的显示更可信。
关于虚拟机 UEFI 的常见疑问
虚拟机 UEFI 开启后原来的系统还能救回来吗
能,但要做引导修复而不是简单改回去,Windows 上先进 PE 用 bcdboot 重建对应固件类型的引导文件;如果只是临时想进系统拿数据,把固件类型改回 BIOS 就能恢复原状,因为磁盘上的 MBR 引导信息并没有被破坏。
虚拟机 UEFI 和物理机 UEFI 有性能差别吗
没有实质差别,虚拟机的 UEFI 固件是 OVMF 这类开源实现编译出的二进制文件,功能上覆盖了启动、变量存储、安全启动,缺少的是物理主板上的硬件初始化环节那些在虚拟机里本来也不需要,启动速度差异主要来自虚拟磁盘和内存配置,与固件类型关系不大。
云服务器上的虚拟机支持 UEFI 启动吗
主流公有云的多数实例规格已经提供 UEFI 启动选项,创建实例时在"镜像/启动模式"里选择即可,部分较早的实例规格仍只支持传统 BIOS,具体以各厂商控制台的选项为准,这项能力通常不额外计费。