VMware虚拟机里再装虚拟机装不了,嵌套虚拟化开关在哪

实验室的 ESXi 里有一台虚拟机,想在里面再装一层 KVM 或 Hyper-V 做测试,安装时报"虚拟化未启用/不受支持"。物理服务器 BIOS 里 VT 明明开着,宿主机跑得好好的,为什么到虚拟机这一层就不行?

原因分析

CPU 的 VT-x/AMD-V 默认只交给虚拟化平台本身,不会自动再往下传。虚拟机里的系统要再跑一层虚拟机监控程序,就必须把硬件辅助虚拟化显式暴露给这台虚拟机——这就是嵌套虚拟化开关。除此之外,虚拟机硬件版本太老、集群开了 EVC 这类兼容性基线把新指令集屏蔽掉,也会让开关不生效。Workstation 和 ESXi 的开关位置不一样,得分开记。

分步解决

  1. Workstation 里:虚拟机设置→处理器→虚拟化引擎,勾选"虚拟化 Intel VT-x/EPT 或 AMD-V/RVI",保存后先关机再开机,挂起恢复的方式不生效。
  2. ESXi 里:虚拟机设置→CPU 页签,勾选"向客户机操作系统公开硬件辅助虚拟化";习惯改配置文件的,在 vmx 文件里加一行 vhv.enable = "TRUE",效果相同。
  3. 硬件版本跟上:虚拟机硬件版本升级到 v9 以上再试,老版本对 64 位嵌套客户机不支持,是仅次于开关没勾的另一类常见卡点;升级前把虚拟机正常关机,做完兼容性检查再动手。
  4. 客户机内验证:Linux 里看 /proc/cpuinfo 的 flags 有没有 vmx(Intel)或 svm(AMD);Windows 装完 Hyper-V 后用系统信息确认"虚拟机监控程序模式"已启用。开关是否真的生效,以客户机内的这两处为准。
  5. 还不通就往物理层查:宿主机 BIOS 的 VT/AMD-V 状态、CPU 型号本身是否支持,一层层向下确认;嵌套环境算力损耗明显,测试用途可以,承载生产业务要慎重。

预防

实验室固定要跑嵌套的,把一台虚拟机配好开关、升好硬件版本做成模板,后续从模板出机;“嵌套开关、硬件版本、客户机验证"这三层检查写成一张卡片放在实验环境首页,新同事不必再从报错开始摸索;实验宿主机的补丁也别随手更,个别版本更新后嵌套行为有变化,变更前后都跑一遍验证再收工。这张三层卡片是诚鑫致达科技做虚拟化交付培训时的入门页,照单走一遍,常见的嵌套问题当场就能定位。