Sapevamo già come verificare se un sistema operativo Linux è a 32 o 64 bit e come trovare se un sistema Linux è una macchina fisica o virtuale . Oggi impareremo un altro argomento utile, ovvero come scoprire se una CPU supporta o meno la tecnologia di virtualizzazione (VT). Questa dovrebbe essere la prima cosa che potresti voler verificare prima di installare applicazioni di virtualizzazione come KVM o VirtualBox o VMWare workstation per eseguire macchine virtuali sul tuo sistema Linux. Ora andiamo a scoprire se il nostro computer supporta VT o meno.
Trova se una CPU supporta la tecnologia di virtualizzazione (VT) in Linux
Possiamo verificare se la nostra CPU supporta VT in vari metodi. Qui ho elencato quattro metodi.
Metodo 1:utilizzo del comando "egrep"
Egrep è una delle varianti di Grep utilità della riga di comando che viene utilizzata per cercare file di testo con espressioni regolari.
Per scoprire se la tua CPU supporta VT usando il comando egrep, esegui:
$ egrep "(svm|vmx)" /proc/cpuinfo
Questo comando greprà /cpu/procinfo/ file e visualizzare se la CPU supporta VT o meno.
Risultato di esempio:
Otterrai "vmx" (tecnologia Intel-VT) o "svm" (supporto AMD-V) nell'output.
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 [...]
Poiché l'output è molto lungo, potrebbe essere un po' difficile trovare le parole "vmx" o "svm". Nessun problema! Puoi distinguere questi termini con colori come di seguito.
$ egrep --color -i "svm|vmx" /proc/cpuinfo
Risultato di esempio:
Scopri se una CPU supporta la virtualizzazione utilizzando il comando egrep in Linux
Se non ottieni alcun output, significa che il tuo sistema non supporta la virtualizzazione.
Tieni presente che questi flag della CPU (vmx o svm) in /proc/cpuinfo indica che il tuo sistema supporterà VT. In alcuni modelli di CPU, il supporto VT potrebbe essere disabilitato nel BIOS, per impostazione predefinita. In questi casi, dovresti controllare le impostazioni del BIOS per abilitare il supporto VT.
Metodo 2:utilizzo del comando "lscpu"
Il comando "lscpu" viene utilizzato per visualizzare le informazioni sull'architettura della CPU. Raccoglie informazioni da sysfs, file /proc/cpuinfo e mostra il numero di CPU, thread, core, socket e nodi NUMA (Non-Uniform Memory Access) del tuo sistema host.
Per scoprire se il supporto VT è abilitato o meno, è sufficiente eseguire:
$ lscpu
Scopri se una CPU supporta la virtualizzazione utilizzando il comando lscpu in Linux
Metodo 3:utilizzo dell'utilità "Cpu-checker"
Controllo CPU è ancora un'altra utile utility per testare la tua CPU per il supporto della virtualizzazione. Per quanto ho cercato sul web, questa utility è disponibile solo per i sistemi basati su Ubuntu. Per installarlo, esegui:
$ sudo apt-get install cpu-checker
Una volta installato il pacchetto cpu-checker, eseguire il comando seguente per verificare se il supporto VT è abilitato o meno:
$ kvm-ok
Se la tua CPU supporta VT, otterrai il seguente output:
INFO: /dev/kvm exists KVM acceleration can be used
Scopri se una CPU supporta la virtualizzazione utilizzando cpu-checker
Se la tua CPU non supporta VT, vedrai un output simile a quello di seguito.
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
Metodo 4:utilizzo dello strumento "virt-host-validate"
Questo strumento è specifico per distribuzioni basate su RHEL come CentOS e Scientific Linux. Il client libvirt il pacchetto fornisce virt-host-validate binario. Quindi è necessario installare il pacchetto "libvert-client" per utilizzare questo strumento.
$ sudo yum install libvirt-client
Ora, esegui il comando "virt-host-validate" per scoprire se VT è abilitato o meno nei tuoi sistemi basati su RHEL.
$ sudo virt-host-validate
Se ottieni il pass per tutti i risultati, il tuo sistema supporta 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
Se il tuo sistema non supporta VT, vedrai un output come di seguito.
QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) [...]
E per ora è tutto. In questa guida, abbiamo discusso vari metodi per scoprire se una CPU supporta VT o meno. Come puoi vedere, è stato molto facile. Spero che questo sia stato utile.