检查是否在 Centos 7 上没有 sudo 的情况下启用了虚拟化?
Check if virtualization is enabled without sudo on Centos 7?
我需要检查是否在 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
可以使用一些技巧来确定是否在英特尔酷睿 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 的功能将程序 rdmsr
指定为 运行 恰好 的用户使用参数 0x3a
你的选择(让我们称之为 daemonuser
)没有密码(见 man sudoers
,或你的 /usr/share/doc/sudo/examples/sudoers
):
daemonuser ALL = NOPASSWD: /path/to/rdmsr 0x3a
我需要检查是否在 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
可以使用一些技巧来确定是否在英特尔酷睿 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 的功能将程序 rdmsr
指定为 运行 恰好 的用户使用参数 0x3a
你的选择(让我们称之为 daemonuser
)没有密码(见 man sudoers
,或你的 /usr/share/doc/sudo/examples/sudoers
):
daemonuser ALL = NOPASSWD: /path/to/rdmsr 0x3a