在配备 AMD EPYC Rome 7282 处理器的 Ubuntu 20.04.1 服务器上,我使用 libvirt 6.0.0(qemu 4.2/kvm)创建了一个 Windows 10(内部版本 21301)虚拟机。在该虚拟机中,我想启用嵌套虚拟化(Hyper-V),以便能够使用 WSL 2。
准备工作:对于内核kvm_amd
模块,已nested=1
设置标志。此外,cat /sys/module/kvm_amd/parameters/npt
报告。此外,在libvirt 域配置中1
,我已启用以下 Hyper-V 虚拟机管理程序功能列表:relaxed
,,,,,,,,,,,,。vapic
spinlocks (retries=8191)
vpindex
runtime
synic
stimer (direct)
frequencies
reenlightenment
tlbflush
ipi
我得到的最远的是 Windowssysteminfo
抱怨未启用二级地址转换:
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: No
Data Execution Prevention Available: Yes
这些是我测试过但没有成功的 libvirt 配置:
CPU 型号 | 明确设置 CPU 功能 | 结果 |
---|---|---|
EPYC-IBPB | 虚拟机管理程序:禁用, svm:需要 |
systeminfo:没有二级地址转换 |
EPYC-罗马 | - | 蓝屏:EXCEPTION_ON_INVALID_STACK |
EPYC-罗马 | 虚拟机管理程序:禁用, svm:需要 |
立即启动并进入自动修复 |
主模型 | - | 蓝屏:虚拟机管理程序错误 |
主模型 | 虚拟机管理程序:禁用 | 蓝屏:CLOCK_WATCHDOG_TIMEOUT 或 SYSTEM_THREAD_EXCEPTION_NOT_HANDLED |
主机直通 | - | 卡在启动画面 |
一般来说,Windows 支持在这些处理器上作为嵌套虚拟化设置中的第一级客户机(至少第一代 Zen 处理器,来源)。那么我在 EPYC-IBPB 配置中缺少哪个 CPU 标志?
我到底能不能实现我的愿望?