是否有测试可查看当前是否在 Linux 会话中启用了硬件虚拟化 (vmx / svm)?

Dr.*_*ius 5 virtualization linux virtualbox

我正在编写为 64 位 SMP 来宾配置 VirtualBox 支持的程序,这需要硬件虚拟化支持(VTx/Intel、AMD-V/AMD)。我自己已经成功地配置了这个,但是我希望过程清楚。

sed -ne '/^flags/s/^.*: //p' /proc/cpuinfo  |                               
    egrep -q '(vmx|svm)' && echo Has hardware virt || echo No HW virt
Run Code Online (Sandbox Code Playgroud)

... 显示CPU是否有能力。

我仍然需要在 BIOS 中启用该功能。

有什么方法可以从 Linux 内部进行测试以查看是否存在?

谢谢。

(编辑:标题中的 s/xvm/svm/)

Dr.*_*ius 2

答案来自 brian99 指出的类似问题。

为您的发行版安装kvm-ok(从 Debian/Ubuntu 下的 cpu-checker)。运行kvm-ok该命令将检查是否存在硬件虚拟化的各种先决条件:

  • CPU标志
  • BIOS 已启用
  • 存在 kvm/svm 模块。
  • /dev/kvm展示

输出应该表明您的系统是否有能力,或者缺少哪些能力来实现这一点。退出状态应该(我尚未确认)也是可测试的(如下所示)。

示例运行:

$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)