歡迎光臨
每天分享高質量文章

如何知道 CPU 是否支援虛擬化技術(VT) | Linux 中國

在安裝虛擬化程式(如 VirtualBox 或 VMWare workstation)以在 Linux 系統上執行虛擬機器之前,你應該首先驗證這一點。
— Sk


致謝
編譯自 | https://www.ostechnix.com/how-to-find-if-a-cpu-supports-virtualization-technology-vt/ 
 作者 | Sk
 譯者 | geekpi ? ? 共計翻譯:688 篇 貢獻時間:1622 天

我們已經知道如何檢查你的 Linux 作業系統是 32 位還是 64 位[1]以及如何知道你的 Linux 系統是物理機還是虛擬機器[2]。今天,我們將學習另一個有用的話題 – 如何知道 CPU 是否支援虛擬化技術 (VT)?在安裝虛擬化程式(如 VirtualBox 或 VMWare workstation)以在 Linux 系統上執行虛擬機器之前,你應該首先驗證這一點。現在讓我們來看看你的電腦是否支援 VT。相信我,這真的很簡單!

瞭解 CPU 是否支援虛擬化技術 (VT)

我們可以透過幾種方法檢查 CPU 是否支援 VT。在這裡我向你展示四種方法。

方法 1:使用 egrep 命令

egrep 是 grep[3] 命令的變體之一,用於使用正則運算式搜尋文字檔案。為了本指南的目的,我們將 grep /cpu/procinfo/ 檔案來確定 CPU 是否支援 VT。

要使用 egrep 命令查明你的CPU是否支援VT,請執行:

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

示例輸出:

你將在輸出中看到 vmx(Intel-VT 技術)或 svm (AMD-V 支援)。

  1. 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

  2. [...]

由於輸出很長,你可能會發現很難在輸出中找到 vmx 或 svm。別擔心!你可以像下麵那樣用顏色來區分這些術語。

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

如果你沒有看到任何輸出,這意味著你的系統不支援虛擬化。

請註意,cpuinfo 中的這些 CPU 標誌(vmx 或 svm)表示你的系統支援 VT。在某些 CPU 型號中,預設情況下,可能會在 BIOS 中禁用 VT 支援。在這種情況下,你應該檢查 BIOS 設定以啟用 VT 支援。

有關 grep/egrep 命令的更多詳細資訊,請參閱手冊頁。

  1. $ man grep

方法 2: 使用 lscpu 命令

lscpu 命令用於顯示有關 CPU 架構的資訊。它從 sysfs/proc/cpuinfo 收集資訊,並顯示主機系統的 CPU、執行緒、核心、套接字和非統一記憶體訪問 (NUMA) 節點的數量。

要確定是否啟用 VT 支援,只需執行:

  1. $ lscpu

有關更多詳細資訊,請檢視手冊頁。

  1. $ man lscpu

方法 3:使用 cpu-checker 工具

cpu-checker 是另一個有用的工具,用於測試你的 CPU 是否支援虛擬化。就我在網上搜索得到的,該程式僅適用於基於 Ubuntu 的系統。要安裝它,請執行:

  1. $ sudo apt-get install cpu-checker

安裝 cpu-checker 包之後,執行以下命令來檢查是否啟用 VT 支援:

  1. $ sudo kvm-ok

如果您的 CPU 支援 VT,你將得到以下輸出:

  1. INFO: /dev/kvm exists

  2. KVM acceleration can be used

如果你的 CPU 不支援 VT,你會看到如下的輸出。

  1. INFO: Your CPU does not support KVM extensions

  2. KVM acceleration can NOT be used

方法 4:使用 virt-host-validate 工具

該工具專門用於基於 RHEL 的發行版,如 CentOS 和 Scientific Linux。 libvirt-client 包提供 virt-host-validate 二進位制檔案。所以你需要安裝 libvert-client 包來使用這個工具。

  1. $ sudo yum install libvirt-client

現在,執行 virt-host-validate 命令來確定基於 RHEL 的系統中是否啟用了 VT。

  1. $ sudo virt-host-validate

如果所有的結果是 pass,那麼你的系統支援 VT。

  1. QEMU: Checking for hardware virtualization : PASS

  2. QEMU: Checking if device /dev/vhost-net exists : PASS

  3. QEMU: Checking if device /dev/net/tun exists : PASS

  4. QEMU: Checking for cgroup 'memory' controller support : PASS

  5. QEMU: Checking for cgroup 'memory' controller mount-point : PASS

  6. QEMU: Checking for cgroup 'cpu' controller support : PASS

  7. QEMU: Checking for cgroup 'cpu' controller mount-point : PASS

  8. QEMU: Checking for cgroup 'cpuacct' controller support : PASS

  9. QEMU: Checking for cgroup 'cpuacct' controller mount-point : PASS

  10. QEMU: Checking for cgroup 'cpuset' controller support : PASS

  11. QEMU: Checking for cgroup 'cpuset' controller mount-point : PASS

  12. QEMU: Checking for cgroup 'devices' controller support : PASS

  13. QEMU: Checking for cgroup 'devices' controller mount-point : PASS

  14. QEMU: Checking for cgroup 'blkio' controller support : PASS

  15. QEMU: Checking for cgroup 'blkio' controller mount-point : PASS

  16. QEMU: Checking for device assignment IOMMU support : PASS

  17. LXC: Checking for Linux >= 2.6.26 : PASS

  18. LXC: Checking for namespace ipc : PASS

  19. LXC: Checking for namespace mnt : PASS

  20. LXC: Checking for namespace pid : PASS

  21. LXC: Checking for namespace uts : PASS

  22. LXC: Checking for namespace net : PASS

  23. LXC: Checking for namespace user : PASS

  24. LXC: Checking for cgroup 'memory' controller support : PASS

  25. LXC: Checking for cgroup 'memory' controller mount-point : PASS

  26. LXC: Checking for cgroup 'cpu' controller support : PASS

  27. LXC: Checking for cgroup 'cpu' controller mount-point : PASS

  28. LXC: Checking for cgroup 'cpuacct' controller support : PASS

  29. LXC: Checking for cgroup 'cpuacct' controller mount-point : PASS

  30. LXC: Checking for cgroup 'cpuset' controller support : PASS

  31. LXC: Checking for cgroup 'cpuset' controller mount-point : PASS

  32. LXC: Checking for cgroup 'devices' controller support : PASS

  33. LXC: Checking for cgroup 'devices' controller mount-point : PASS

  34. LXC: Checking for cgroup 'blkio' controller support : PASS

  35. LXC: Checking for cgroup 'blkio' controller mount-point : PASS

如果你的系統不支援 VT,你會看到下麵的輸出。

  1. QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited)

  2. [...]

就是這樣了。在本文中,我們討論了確定 CPU 是否支援 VT 的不同方法。如你所見,這很簡單。希望這個有用。還有更多好的東西。敬請關註!

乾杯!


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

作者:SK[5] 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂