如何找到CPU是否支持虚拟化技术(VT)
我们已经知道如何检查Linux操作系统是否为32位或者64位以及如何查找Linux系统是否是物理或者虚拟机。
今天,我们将学习其他有用的主题如何查找CPU是否支持虚拟化技术(VT)?
在安装虚拟化应用程序(如KVM或者VirtualBox或者VMware Workstation)之前,这应该是我们可能想要验证的第一件事,以便在Linux系统上运行虚拟机。
现在让我们去找出你的电脑是否支持VT。
查找CPU是否支持Linux中的虚拟化技术(VT)
我们可以检查我们的CPU是否支持各种方法VT。
在这里我列出了四种方法。
方法1:使用"eGrep"命令
EGREP是Grep命令行实用程序的变体之一,用于使用正则表达式搜索文本文件。
要查找CPU是否支持使用EGREP命令的VT,运行:
$egrep "(svm|vmx)" /proc/cpuinfo
此命令将grep/cpu/procinfo/file,并显示CPU是否支持VT。
我们将在输出中获得"VMX"(Intel-VT技术)或者"SVM"(AMD-V支持)。
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb pti tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm arat pln pts [...]
由于输出很长,因此可能有点很难找到"VMX"或者"SVM"。
不用担心!我们可以将这些术语与下面的颜色区分开来。
$egrep --color -i "svm|vmx" /proc/cpuinfo
示例输出:
如果我们没有得到任何输出,这意味着系统不支持虚拟化。
请注意,/proc/cpuinfo文件中的这些CPU标志(VMX或者SVM)表示系统将支持VT。
在某些CPU模型中,默认情况下,BIOS中可能会禁用VT支持。
在这种情况下,我们应该检查BIOS设置以启用VT支持。
方法2 - 使用"LSCPU"命令
"LSCPU"命令用于显示有关CPU架构的信息。
它会收集来自sysfs,/proc/cpuinfo文件的信息,并显示主机系统的CPU,线程,核心,套接字和非统一内存访问(NUMA)节点的数量。
要查明是否启用了VT支持,只需运行:
$lscpu
方法3 - 使用"CPU-Checker"实用程序
CPU-Checker是另一个有用的实用程序来测试CPU以实现虚拟化支持。
据我在Web上搜索,此实用程序仅适用于基于Ubuntu的系统可用。
要安装它,请运行:
$sudo apt-get install cpu-checker
安装CPU-Checker软件包后,运行以下命令以检查VT支持是否启用:
$kvm-ok
如果CPU支持VT,我们将获得以下输出:
INFO: /dev/kvm exists KVM acceleration can be used
如果CPU不支持VT,我们将看到如下所示的输出。
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
方法4 - 使用"virt-host-验证"工具
该工具专门用于基于Rhel的发行版,如CentOS和Scientific Linux。
libvirt-client包提供virt-host-valivate二进制文件。
因此,我们需要安装"libvert-client"包以使用此工具。
$sudo yum install libvirt-client
现在,运行"virt-host-validate"命令,以查找是否已启用VT或者不在基于RHEL的系统中。
$sudo virt-host-validate
如果我们获得所有结果的传递,系统支持VT。
QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup 'memory' controller support : PASS QEMU: Checking for cgroup 'memory' controller mount-point : PASS QEMU: Checking for cgroup 'cpu' controller support : PASS QEMU: Checking for cgroup 'cpu' controller mount-point : PASS QEMU: Checking for cgroup 'cpuacct' controller support : PASS QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS QEMU: Checking for cgroup 'cpuset' controller support : PASS QEMU: Checking for cgroup 'cpuset' controller mount-point : PASS QEMU: Checking for cgroup 'devices' controller support : PASS QEMU: Checking for cgroup 'devices' controller mount-point : PASS QEMU: Checking for cgroup 'blkio' controller support : PASS QEMU: Checking for cgroup 'blkio' controller mount-point : PASS QEMU: Checking for device assignment IOMMU support : PASS LXC: Checking for Linux >= 2.6.26 : PASS LXC: Checking for namespace ipc : PASS LXC: Checking for namespace mnt : PASS LXC: Checking for namespace pid : PASS LXC: Checking for namespace uts : PASS LXC: Checking for namespace net : PASS LXC: Checking for namespace user : PASS LXC: Checking for cgroup 'memory' controller support : PASS LXC: Checking for cgroup 'memory' controller mount-point : PASS LXC: Checking for cgroup 'cpu' controller support : PASS LXC: Checking for cgroup 'cpu' controller mount-point : PASS LXC: Checking for cgroup 'cpuacct' controller support : PASS LXC: Checking for cgroup 'cpuacct' controller mount-point : PASS LXC: Checking for cgroup 'cpuset' controller support : PASS LXC: Checking for cgroup 'cpuset' controller mount-point : PASS LXC: Checking for cgroup 'devices' controller support : PASS LXC: Checking for cgroup 'devices' controller mount-point : PASS LXC: Checking for cgroup 'blkio' controller support : PASS LXC: Checking for cgroup 'blkio' controller mount-point : PASS
如果系统不支持VT,我们将看到如下所示的输出。
QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) [...]