Nous savions déjà comment vérifier si un système d'exploitation Linux est 32 bits ou 64 bits et comment savoir si un système Linux est une machine physique ou virtuelle . Aujourd'hui, nous allons apprendre encore un autre sujet utile, à savoir comment savoir si un processeur prend en charge la technologie de virtualisation (VT) ou non. Cela devrait être la première chose que vous voudrez peut-être vérifier avant d'installer des applications de virtualisation telles que KVM ou VirtualBox ou VMWare station de travail pour exécuter des machines virtuelles sur votre système Linux. Allons maintenant voir si notre ordinateur prend en charge VT ou non.
Trouver si un processeur prend en charge la technologie de virtualisation (VT) sous Linux
Nous pouvons vérifier si notre CPU prend en charge VT de différentes manières. Ici, j'ai énuméré quatre méthodes.
Méthode 1 :Utilisation de la commande "egrep"
Egrep est l'une des variantes de Grep utilitaire de ligne de commande utilisé pour rechercher des fichiers texte avec des expressions régulières.
Pour savoir si votre CPU prend en charge VT à l'aide de la commande egrep, exécutez :
$ egrep "(svm|vmx)" /proc/cpuinfo
Cette commande grep /cpu/procinfo/ fichier et affichez si le CPU prend en charge VT ou non.
Exemple de résultat :
Vous obtiendrez soit "vmx" (technologie Intel-VT) ou "svm" (prise en charge AMD-V) dans la sortie.
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 [...]
Étant donné que la sortie est très longue, il peut être un peu difficile de trouver les mots "vmx" ou "svm". Pas de soucis! Vous pouvez distinguer ces termes avec des couleurs comme ci-dessous.
$ egrep --color -i "svm|vmx" /proc/cpuinfo
Exemple de résultat :
Déterminez si un processeur prend en charge la virtualisation à l'aide de la commande egrep sous Linux
Si vous n'obtenez aucune sortie, cela signifie que votre système ne prend pas en charge la virtualisation.
Veuillez noter que ces indicateurs CPU (vmx ou svm) dans le fichier /proc/cpuinfo indique que votre système prendra en charge VT. Dans certains modèles de CPU, la prise en charge VT peut être désactivée dans le BIOS, par défaut. Dans de tels cas, vous devez vérifier vos paramètres BIOS pour activer la prise en charge VT.
Méthode 2 - Utilisation de la commande "lscpu"
La commande "lscpu" permet d'afficher les informations sur l'architecture de votre CPU. Il rassemble des informations à partir de sysfs, du fichier /proc/cpuinfo et affiche le nombre de processeurs, de threads, de cœurs, de sockets et de nœuds NUMA (Non-Uniform Memory Access) de votre système hôte.
Pour savoir si le support VT est activé ou non, lancez simplement :
$ lscpu
Déterminez si un processeur prend en charge la virtualisation à l'aide de la commande lscpu sous Linux
Méthode 3 - Utilisation de l'utilitaire "Cpu-checker"
Cpu-vérificateur est encore un autre utilitaire utile pour tester votre CPU pour la prise en charge de la virtualisation. D'après mes recherches sur le Web, cet utilitaire n'est disponible que pour les systèmes basés sur Ubuntu. Pour l'installer, exécutez :
$ sudo apt-get install cpu-checker
Une fois le package cpu-checker installé, exécutez la commande suivante pour vérifier si le support VT est activé ou non :
$ kvm-ok
Si votre CPU prend en charge VT, vous obtiendrez la sortie suivante :
INFO: /dev/kvm exists KVM acceleration can be used
Déterminez si un processeur prend en charge la virtualisation à l'aide de cpu-checker
Si votre processeur ne prend pas en charge VT, vous verrez une sortie comme ci-dessous.
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
Méthode 4 - Utilisation de l'outil "virt-host-validate"
Cet outil est spécifiquement destiné aux distributions basées sur RHEL telles que CentOS et Scientific Linux. Le libvirt-client le paquet fournit virt-host-validate binaire. Vous devez donc installer le package "libvert-client" pour utiliser cet outil.
$ sudo yum install libvirt-client
Maintenant, exécutez la commande "virt-host-validate" pour savoir si VT est activé ou non dans vos systèmes basés sur RHEL.
$ sudo virt-host-validate
Si vous obtenez pass pour tous les résultats, votre système prend en charge 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
Si votre système ne prend pas en charge VT, vous verrez une sortie comme ci-dessous.
QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) [...]
Et, c'est tout pour le moment. Dans ce guide, nous avons discuté de différentes méthodes pour savoir si un processeur prend en charge VT ou non. Comme vous pouvez le voir, c'était très facile. J'espère que cela vous a été utile.