Virtualisierungsfunktion Intel VT-x aktivieren

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

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 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 3B: System Programming Guide, Part 2 Kapitel '19.7 ENABLING AND ENTERING VMX OPERATION' (Seite 156)


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Communications / Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxCon, OSDC, OSMC, LinuxTag u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

Keine Maus- und Tastatureingabe bei Windows Server 2008 / Win7 Installation
Problem X11SSH-F und X11SSH-TF mit Intel Pentium G4400 unter Ubuntu beheben
TKmon Servicechecks für Windows Hosts