如何知道 CPU 是否支持虚拟化技术(VT)
创始人
2024-03-01 22:33:11
0

我们已经知道如何检查你的 Linux 操作系统是 32 位还是 64 位以及如何知道你的 Linux 系统是物理机还是虚拟机。今天,我们将学习另一个有用的话题 - 如何知道 CPU 是否支持虚拟化技术 (VT)?在安装虚拟化程序(如 VirtualBox 或 VMWare workstation)以在 Linux 系统上运行虚拟机之前,你应该首先验证这一点。现在让我们来看看你的电脑是否支持 VT。相信我,这真的很简单!

了解 CPU 是否支持虚拟化技术 (VT)

我们可以通过几种方法检查 CPU 是否支持 VT。在这里我向你展示四种方法。

方法 1:使用 egrep 命令

egrepgrep 命令的变体之一,用于使用正则表达式搜索文本文件。为了本指南的目的,我们将 grep /cpu/procinfo/ 文件来确定 CPU 是否支持 VT。

要使用 egrep 命令查明你的CPU是否支持VT,请运行:

$ egrep "(svm|vmx)" /proc/cpuinfo

示例输出:

你将在输出中看到 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
[...]

由于输出很长,你可能会发现很难在输出中找到 vmxsvm。别担心!你可以像下面那样用颜色来区分这些术语。

$ egrep --color -i "svm|vmx" /proc/cpuinfo

如果你没有看到任何输出,这意味着你的系统不支持虚拟化。

请注意,cpuinfo 中的这些 CPU 标志(vmxsvm)表示你的系统支持 VT。在某些 CPU 型号中,默认情况下,可能会在 BIOS 中禁用 VT 支持。在这种情况下,你应该检查 BIOS 设置以启用 VT 支持。

有关 grep/egrep 命令的更多详细信息,请参阅手册页。

$ man grep

方法 2: 使用 lscpu 命令

lscpu 命令用于显示有关 CPU 架构的信息。它从 sysfs/proc/cpuinfo 收集信息,并显示主机系统的 CPU、线程、内核、套接字和非统一内存访问 (NUMA) 节点的数量。

要确定是否启用 VT 支持,只需运行:

$ lscpu

有关更多详细信息,请查看手册页。

$ man lscpu

方法 3:使用 cpu-checker 工具

cpu-checker 是另一个有用的工具,用于测试你的 CPU 是否支持虚拟化。就我在网上搜索得到的,该程序仅适用于基于 Ubuntu 的系统。要安装它,请运行:

$ sudo apt-get install cpu-checker

安装 cpu-checker 包之后,运行以下命令来检查是否启用 VT 支持:

$ sudo 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-validate 工具

该工具专门用于基于 RHEL 的发行版,如 CentOS 和 Scientific Linux。 libvirt-client 包提供 virt-host-validate 二进制文件。所以你需要安装 libvert-client 包来使用这个工具。

$ sudo yum install libvirt-client

现在,运行 virt-host-validate 命令来确定基于 RHEL 的系统中是否启用了 VT。

$ sudo virt-host-validate

如果所有的结果是 pass,那么你的系统支持 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)
[...]

就是这样了。在本文中,我们讨论了确定 CPU 是否支持 VT 的不同方法。如你所见,这很简单。希望这个有用。还有更多好的东西。敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-find-if-a-cpu-supports-virtualization-technology-vt/

作者:SK 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

DPDK系列之九虚拟化vh...
一、virtio-net的发展 virtio-net的驱动最初从后...
2025-06-01 06:50:58
[oeasy]python...
拉丁字符 回忆上次内容 上次回顾了字型编码的进化过程 7-bit ...
2025-05-31 22:06:32
vue-devtools-...
一、简介 vue-devtools是一款基于chrome游览器的插...
2025-05-31 18:47:10
不使用集成开发环境的情况下...
在不使用集成开发环境的情况下使用SpringBoot Devtoo...
2024-12-28 21:31:21
Blazor,虚拟化复选框...
要实现一个包含虚拟化复选框列表的Blazor组件,需要以下步骤:创...
2024-12-22 11:30:57
Blazor组件虚拟化-保...
在Blazor应用中使用虚拟化来提高性能,但在动态加载和卸载组件以...
2024-12-22 10:01:41

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...