web-dev-qa-db-fra.com

vérifier si VT-x est activé sans avoir à redémarrer sous Linux?

J'ai un ordinateur portable avec Intel Core i5 M 450 @ 2,40 GHz qui a apparemment VT-x mais pas VT-d. J'ai Ubuntu 12.04 32 bits, mais j'aimerais avoir un Linux 64 bits basé sur un terminal virtuel. Comment savoir si la fonction VT-x du BIOS est activée sans avoir à redémarrer?

32
719016

Vous pouvez utiliser rdmsr de msr-tools pour lire le registre IA32_FEATURE_CONTROL (adresse x3a). Le module du noyau msr doit être chargé pour cela.

Sur la plupart des systèmes Linux:

Sudo modprobe msr
Sudo rdmsr 0x3a

Valeurs 3 et 5 signifie qu'il est activé.

33
scai

Vous pouvez utiliser

Sudo kvm-ok

de cpu-checker . Sur Intel, qui a la logique la plus compliquée, kvm-ok vérifie que si le bit 0 de rdmsr 0x3a (le bit de verrouillage) est défini, le bit 2 (qui permet d'utiliser virt en dehors du mode SMX, quelque chose à voir avec un démarrage sécurisé) doit également être défini. Si la sortie de rdmsr 0x3a est tout sauf ( 1 ou 3 , vous pourrez utilisez kvm. kvm définira le bit 2 du msr si nécessaire, je m'attends à ce que virtualbox et le reste aient la même logique.

15
Tobu

Installez cpu-checker et exécutez "kvm-ok"

Si le CPU est activé, vous devriez voir quelque chose comme:

INFO: /dev/kvm exists
KVM acceleration can be used

autrement

INFO: /dev/kvm does not exist
HINT:   Sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
   and then hard poweroff/poweron your system
KVM acceleration can NOT be used
11
Viswesn

Sous linux, vous pouvez vérifier cpuinfo:

cat /proc/cpuinfo| egrep "vmx|svm"
7
Gigamegs

vous pouvez utiliser:

Sudo apt-get update
Sudo apt-get install cpu-checker
kvm-ok
1
ghazouan badr

Une approche simple pour confirmer que Vt-D est activé dans le BIOS passe par le système Linux. Si le VT-D est activé dans le BIOS et Iommu=on dans le grub.cfg puis la structure de dossiers ci-dessous est créée automatiquement pour contenir les périphériques virtuels.

/sys/kernel/iommu_groups/0/devices/0000:00:00.0

Alors que si l'une des options VT-D ou Iommu n'est pas configurée/activée, la structure de dossiers mentionnée ci-dessus n'est pas créée. Ce comportement est confirmé dans CentOS 7.4 et Ubuntu. Espérons que ce comportement soit similaire pour les autres systèmes d'exploitation, mais cela devra être confirmé.

1
santhosh kumar
systool -m kvm_intel -v | grep nested
systool -m kvm_AMD -v | grep nested

L'un d'eux devrait produire:

nested              = "1"

Ce qui indique qu'il est activé.

0
Chris Stryczynski

J'ai trouvé que la réponse de scai ne fonctionne pas sur mes systèmes AMD Ryzen.

Cela fonctionne cependant très bien pour moi, même sur Intel:

if systool -m kvm_AMD -v &> /dev/null || systool -m kvm_intel -v &> /dev/null ; then
    echo "AMD-V / VT-X is enabled in the BIOS/UEFI."
else
    echo "AMD-V / VT-X is not enabled in the BIOS/UEFI"
fi

(systool se trouve dans le package sysfsutils sur la plupart des distributions.)

Pour l'IOMMU VT-D/AMD d'Intel, j'ai trouvé cette solution:

if compgen -G "/sys/kernel/iommu_groups/*/devices/*" > /dev/null; then
    echo "AMD's IOMMU / Intel's VT-D is enabled in the BIOS/UEFI."
else
    echo "AMD's IOMMU / Intel's VT-D is not enabled in the BIOS/UEFI"
fi

(Cela a même fonctionné pour moi si les paramètres du noyau iommu ne sont pas définis.)

0
Forivin