我需要在Centos 7上检查虚拟化是否启用,但不需要使用sudo。
我找到了检查虚拟化是否启用的命令,但需要sudo权限。
sudo modprobe msr
sudo rdmsr 0x3a
Ubuntu上存在一个实用程序cpu-checker,可以在没有sudo的情况下检查虚拟化是否启用。
kvm-ok
在Centos 7上是否存在类似于cpu-checker的实用工具?
我需要在Centos 7上检查虚拟化是否启用,但不需要使用sudo。
我找到了检查虚拟化是否启用的命令,但需要sudo权限。
sudo modprobe msr
sudo rdmsr 0x3a
Ubuntu上存在一个实用程序cpu-checker,可以在没有sudo的情况下检查虚拟化是否启用。
kvm-ok
在Centos 7上是否存在类似于cpu-checker的实用工具?
首先:
kvm-ok
和 rdmsr 0x3a
完全是两个不同的东西。
根据它的手册页面,kvm-ok
只是解析 /proc/cpuinfo
中的 CPU 标志以指示 CPU 中的虚拟化技术(然后检查是否加载了必要的模块),而 rdmsr
则读取 CPU 的特殊型号特定寄存器。
因此,kvm-ok
不需要 root 权限,而 rdmsr
无法工作,因为您的进程没有上下文来查询这些寄存器。
rdmsr 0x3a
可以通过一些技巧,在 Intel Core iX 或更高版本的 XEON 处理器上确定 VT 技术是否已启用;对于高效的虚拟化,这是必要的,但并非充分的。
因此,我建议手动执行 kvm-ok
所做的操作。
检查第一个 CPU 的 vmx
或 svm
标志:
grep flags /proc/cpuinfo|head -n1|grep -Eo '(vmx|svm)'
并确认已加载KVM模型:
lsmod | grep '^kvm'
vmx
标志仍然存在),最简单的方法肯定是使用sudo的权限来指定程序rdmsr
以恰好使用0x3a
参数运行由你选择的用户(我们称之为daemonuser
)而不需要输入密码(请参见man sudoers
或你的/usr/share/doc/sudo/examples/sudoers
)。daemonuser ALL = NOPASSWD: /path/to/rdmsr 0x3a