我需要检查在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,根据它的man page,仅解析/ proc / cpuinfo以获取指示CPU中虚拟化技术的CPU标志(然后检查是否已加载必要的模块,而rdmsr读取CPU特定于模型的寄存器.
因此,kvm-ok不会执行您需要root特权所需的任何操作,而rdmsr则无法工作,因为您的进程无需上下文就可以查询这些寄存器.
可以通过一些技巧使用rdmsr 0x3a来确定是否在Intel Core iX或更高版本的XEON处理器上启用了VT技术.对于高性能虚拟化来说,这是必要的,但还不够.
因此,我想说的就是继续手动执行kvm-ok的操作.
检查第一个CPU的vmx或svm flags:
grep flags /proc/cpuinfo|head -n1|grep -Eo '(vmx|svm)'
并验证是否已加载kvm模型:
lsmod | grep '^kvm'
实际上,如果实际上您需要查询该特定于模型的寄存器(例如,由于某种原因,即使在UEFI设置中禁用了VT,则存在vmx标志),最简单的方法当然就是使用功能sudo的名称,以指定要由您选择的用户(称为daemonuser)使用参数0x3a准确运行的程序rdmsr,而无需输入密码(请参阅man sudoers或您的/usr/share / doc / sudo / examples / sudoers):
daemonuser ALL = NOPASSWD: /path/to/rdmsr 0x3a