我从here读取,必须通过向命令提供+ vmx选项显式启用QEMU上的vmx功能支持,但问题是它似乎不起作用。在我的系统中,仍未检测到VMX功能。
命令:
qemu-system-x86_64 -no-kvm -cpu qemu64,+vmx,-svm ...
在我的客户操作系统中,当我执行cpuid 1时,我得到ECX = 0x80802001; bit 5 = 0表示我的虚拟CPU没有VMX。
这是一个错误吗?
或者是否有其他方法可以在QEMU中启用vmx功能?
答案 0 :(得分:2)
以下命令适用于我:
qemu-system-x86_64 -cpu host -kernel kernel/kernel -serial stdio -enable-kvm
-cpu host
使QEMU报告VM内的主机CPU功能(因此您的CPU必须支持vmx)
-enable-kvm
需要 -cpu host
即使根据this -cpu qemu64,+vmx
应该有效,但它也不适用于我。
答案 1 :(得分:0)
否,QEMU的处理器仿真模式不支持vmx
标志。为了在QEMU中使用vmx
,必须将KVM与QEMU一起使用(将-no-kvm
替换为-enable-kvm
);并且您的主机处理器必须支持vmx
。
在this document中,它显示了Linux KVM中对嵌套vmx指令的支持;意味着此功能必须与-enable-kvm
一起使用。
在我的测试中,选项-enable-kvm -cpu kvm64,+vmx
起作用,因为在来宾操作系统中检测到vmx
功能。