Virtualisierungsfunktion Intel VT-x aktivieren
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:
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:
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.
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
- ↑ Verifying that Intel VT-x is Enabled and Locked at Boot (VMware Communities)
- ↑ 9.3. Verifying virtualization extensions (Red Hat Enterprise Linux 6 Virtualization Administration Guide)
- ↑ msr-tools (packages.debian.org)
- ↑ Processor register (en.wikipedia.org)
- ↑ c't Hotline: CPU-Virtualisierungsfunktionen nutzbar?
- ↑ 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)
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.
|