Virtualisierungsfunktion Intel VT-x aktivieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Die Intel Virtualisierungsfunktion VT-x (früher VT genannt) kann bei vielen Systemen im BIOS aktiviert bzw. deaktiviert werden.

Problem

Trotz Aktivierung der Funktion im BIOS steht im Betriebssystem die Virtualisierungsfunktion nicht zur Verfügung. Es kommt eine Fehlermeldung, dass der "Hardware Virtualization Support" nicht verfügbar ist.

Lösung

Eine Änderung von dieser BIOS-Einstellung erfordert anschließend ein Aus- und Einschalten des Servers. Erst danach ist die neue Einstellung wirksam.

Hintergrund: Bereits beim Einschalten des Rechners muss das BIOS die VT-x Funktion der CPU entweder aktivieren oder deaktivieren. Die gewählte Einstellung wird dann gesperrt, um eine Änderung dieser Funktionseinstellung im laufenden Betrieb zu verhindern.[1]

Beispiel Intel SR2500 Server

Die Einstellung kann im BIOS unter Advanced --> Processor Configuration --> Intel(R) Virtualization Technology vorgenommen werden.

In der rechten Spalte wird in dieser Ansicht folgender Hilfetext angezeigt:

Intel (R) Virtualization
Technology allows a platform to
run multiple operating systems
and applications in independent
partitions.
Note: A change to this option
requires the system to be
powered off and then back on
before the setting will take
effect.

Hier dazu ein Screenshot wie die Meldung am Bildschirm aussieht:

SR2500-bios-intel-vt.png

Nach dem Speichern der Konfiguration muss der Server also aus- und anschließend wieder eingeschaltet werden.

Beispiel Supermicro Server mit X7DBE Mainboard

Die Einstellung kann im BIOS unter Advanced --> Advanced Processor Options --> Intel(R) Virtualization Technology vorgenommen werden.

In der rechten Spalte wird in dieser Ansicht folgender Hilfetext angezeigt:

One power-cycle will
occur after changed
the setting.

Hier dazu ein Screenshot wie die Meldung am Bildschirm aussieht:

X7DBE-bios-intel-vt.png

Bei diesem Server ist ein manuelles Aus- und Einschalten nicht erforderlich. Das wird automatisch vom Server selbst durchgeführt.

Beispiel Supermicro Server mit X11SSH-LN4F Mainboard

Die Einstellung kann im BIOS unter Advanced --> CPU Configuration --> Intel Virtualization Technology vorgenommen werden.

Supermicro-X11SSH-LN4F-Intel-Virtualization-001.png

Speichern Sie anschließend die Einstellungen im Menü Save & Exit --> Save Changes and Reset. Es erfolgt ein Reset des Systems und anschließend ein Neustart.

Beispiel Server von anderen Herstellern

Bei anderen Server Herstellern können die Namen der BIOS Optionen bzw. der Weg wie man ins BIOS gelangt unterschiedlich sein. Hier ist ein Beispiel wie die Optionen benannt sein können - mit diesen Beispiel-Hinweisen sollten sich bei den meisten Servern die entsprechenden Optionen finden lassen:

  • F9 (um ins BIOS zu gelangen)
  • Advanced Options
  • Processor Options
  • Intel(R) Virtualization Technology
  • Enable

Überprüfung der Konfiguration unter Linux

Die folgenden Anleitungen zeigen, wie Sie überprüfen ob die CPU Intel VT-x unterstützt und (falls dies der Fall ist) wie Sie überprüfen, ob die BIOS-Einstellungen die Nutzung dieser Fuktion erlauben.

Unterstützt die CPU VT-x?

Ob die CPU VT-x unterstützt können Sie auf einem Linux System mit Hilfe von /proc/cpuinfo überprüfen. Wenn dort unter flags das vmx Flag aufscheint, unterstützt die CPU grundsätzlich VT-x:[2]

root@grml ~ # cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Intel(R) Xeon(R) CPU            5110  @ 1.60GHz
stepping	: 6
cpu MHz		: 1595.896
cache size	: 4096 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
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 lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl 
vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow
bogomips	: 3193.78
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:
[...]

Erlauben die BIOS-Einstellungen die Nutzung von VT-x?

Mit Hilfe von rdmsr (read msr) aus den msr-tools[3] lässt sich ermitteln ob das BIOS die Nutzung von VT-x erlaubt. MSR steht für Machine Specific Register (manchmal auch als Model Specific Register bezeichnet).[4] MSRs werden verwendet um bestimmte Werte für verwendete Hardware zu setzen bzw. um Werte zwischen dem BIOS und dem Kernel weiterzugeben.

Der VT-x Blocker steckt im MSR IA32_FEATURE_CONTROL (MSR Adresse 0x3a).[5] Dieses MSR besteht aus folgenden drei Bits:[6]

  • Bit 0: lock Bit
  • Bit 1: aktiviert VMXON in SMX Operation
  • Bit 2: aktiviert VMXON außerhalb SMX Operation

Damit der VT-x Support aktiviert ist, muss das BIOS das Bit 1, das Bit 2, oder beide sowie das Bit 0 setzen.

Hier im Beispiel wird die Linux Live CD grml 64 2009.05 verwendet. Die msr-tools werden mittels apt-get update und anschließendem apt-get install msr-tools installiert. Damit rdmsr auf die MSRs zugreifen kann, muss das Kernel Modul msr geladen werden.

Beispiel 1: Intel VT-x im BIOS deaktiviert

Wenn Intel VT-x im BIOS deaktiviert ist (oder nach dem Aktivieren noch kein Aus- und anschließendes Einschalten des Servers durchgeführt wurde), gibt rdmsr 0x3a den Wert 1 zurück (nur das Bit 0 ist gesetzt).

root@grml ~ # modinfo msr
filename:       /lib/modules/2.6.28-grml64/kernel/arch/x86/kernel/msr.ko
license:        GPL
description:    x86 generic MSR driver
author:         H. Peter Anvin <hpa@zytor.com>
srcversion:     645F15590C9CD893B156AD6
depends:        
vermagic:       2.6.28-grml64 SMP preempt mod_unload 
root@grml ~ # modprobe msr
root@grml ~ # rdmsr 0x3a
1
root@grml ~ #

Beispiel 2: Intel VT-x im BIOS aktiviert

Beim Beispielserver (Intel SR2500) gibt rdmsr 0x3a den Wert 5 zurück wenn Intel VT-x im BIOS aktiviert ist (die Bits 0 und 2 sind also gesetzt).

root@grml ~ # modinfo msr
filename:       /lib/modules/2.6.28-grml64/kernel/arch/x86/kernel/msr.ko
license:        GPL
description:    x86 generic MSR driver
author:         H. Peter Anvin <hpa@zytor.com>
srcversion:     645F15590C9CD893B156AD6
depends:        
vermagic:       2.6.28-grml64 SMP preempt mod_unload 
root@grml ~ # modprobe msr
root@grml ~ # rdmsr 0x3a
5
root@grml ~ # 

Referenzen

  1. Verifying that Intel VT-x is Enabled and Locked at Boot (VMware Communities)
  2. 9.3. Verifying virtualization extensions (Red Hat Enterprise Linux 6 Virtualization Administration Guide)
  3. msr-tools (packages.debian.org)
  4. Processor register (en.wikipedia.org)
  5. c't Hotline: CPU-Virtualisierungsfunktionen nutzbar?
  6. Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3C: System Programming Guide, Part 3 Kapitel '23.7 ENABLING AND ENTERING VMX OPERATION' (Seite 5 im PDF)


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

AMI BIOS Beep Codes
AMI BIOS Post Codes
Intel iSCSI Remote Boot konfigurieren