Virtuelle Maschine in einer virtuellen Maschine betreiben

KVM in KVM
KVM in KVM
30.07.2013 11:05

VirtualBox und Co nutzen standardmäßig die speziellen Virtualisierungsfunktionen der Prozessoren, um ihre virtuellen Maschinen schneller und sicherer laufen zu lassen. Intel fasst diese Funktionen unter dem Namen VT-x zusammen, AMD nennt seine Variante AMD-V. Leider reichen sie die Virtualisierer nicht in die virtuellen Maschinen durch. Man kann folglich nicht einfach VirtualBox in einem Gastbetriebssystem starten (und somit VirtualBox in einer VirtualBox). Es gibt allerdings einige Anwendungsgebiete, in denen man genau das benötigt – beispielsweise weil man eine Software testen möchte, die VT-x oder AMD-V voraussetzt. Paradebeispiele wären das Aufsetzen einer Cloud oder das Debuggen eines Hypervisors.

Eine Ausnahme ist KVM, das die Virtualisierungsfunktionen der Prozessoren in die virtuelle Maschine durchreichen kann. Seit Kernel 3.1 funktioniert das neben AMD- auch auf Intel-Prozessoren. Dort muss man diese Nested KVM genannte Technik allerdings häufig erst noch einschalten.

Anknipsen

Ob Nested KVM auf dem eigenen System bereits aktiviert ist, verrät bei einem Intel-Prozessor:

cat /sys/module/kvm_intel/parameters/nested

und bei einer AMD-CPU:

cat /sys/module/kvm_amd/parameters/nested

Wenn jetzt ein N oder eine erscheint, muss man als Benutzer root das entsprechende KVM-Modul entfernen und dann mit dem Parameter nested=1 neuladen. Auf Intel-Systemen geschieht das per:

rmmod kvm_intel
modprobe kvm_intel nested=1

Auf AMD-Systemen analog mit:

rmmod kvm_amd
modprobe kvm_amd nested=1

Damit man das nicht jedes Mal nach dem Systemstart wiederholen muss, kann man dem Kernel beim Booten auch den Parameter kvm-intel.nested=1 beziehungsweise auf einem AMD-System kvm-amd.nested=1 anhängen. Alternativ bieten die Distributionen auch irgendwo eine Konfigurationsdatei für Module. Normalerweise ist sie in einzelne Dateien aufgeteilt, die wiederum im Verzeichnis /etc/modprobe.d liegen. Dort erstellt man eine neue Datei mit der Endung .conf, etwa 99-kvm.conf, in der man die folgende Zeile ablegt:

options kvm-intel nested=1

respektive auf AMD-Systemen:

options kvm-amd nested=1

In jedem Fall sollte nach einem Neustart Nested KVM aktiviert sein.

Diese Einstellungen sind im Virt-Manager notwendig.

Schachtelhalmalm

Sobald Nested KVM verfügbar ist, kann man eine virtuelle Maschine anlegen. Wichtig ist, dass der Prozessor der virtuellen Maschine das CPU-Feature vmx versteht.

Wer den grafischen virt-manager verwendet, ruft dazu die Einstellungen der virtuellen Maschine auf, steuert dort den Punkt Processor an, klappt rechts die Configuration und dann die CPU Features auf. Dort stellt man mit einem Mausklick den Eintrag vmx auf require. Alternativ kann man auch einfach per Copy host CPU configuration die Funktionen der echten CPU übernehmen.

Wer die virtuellen Maschinen auf der Kommandozeile mit qemu startet, ergänzt noch den Parameter -cpu um ein +vmx:

-cpu qemu64,+vmx 

Alternativ kann man auch hier der virtuellen CPU einfach alle Fähigkeiten der echten verpassen:

-cpu host

Kommentare

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Leap 42.1 und LibreOffice
Heinz Kolbe, 09.02.2016 21:54, 0 Antworten
Moin moin, auf meinem Notebook habe ich Leap 42.1 und Win 10 installiert. Alles läuft rund nur...
Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Darktable will nicht
Karl-Heinz, 14.02.2016 20:02
Am Sun, 14 Feb 2016 16:15:22 +0100 schrieb "Hans Ch. Gossel" : Hallo Hans, erst Frage interessa...
[EasyLinux-Ubuntu] Darktable will nicht
"Hans Ch. Gossel", 14.02.2016 16:15
Hallo Experten, habe darktable Version 1.4.2-1+b3 installiert. Wenn ich es aufrufe kommt die Meldung [in...
Re: [EasyLinux-Ubuntu] [OT] Angriffe auf WLAN blockieren
Dietmar Schlosser, 14.02.2016 15:40
Am Sonntag, 14. Februar 2016, 13:20:12 schrieb Hartmut Haase: > Zu meiner Zeit gab es noch nicht einmal PC...
Re: [EasyLinux-Ubuntu] Speedport W700V Passworteingabe geht nicht
alfred, 14.02.2016 13:32
Am 14.02.2016 um 12:18 schrieb Rainer:Hallo Rainer, danke für den Link zu dslweb... Da liege ich mit Speedp...
Re: [EasyLinux-Ubuntu] Passwort_wird_nicht_mehr_genommen_gelöst
Seidler Reinhard, 14.02.2016 13:30
Hallo Michael, ja von mir ging es damals ohne Probleme, ist aber ca. 2 Jahre her Gruß Reini Am 09.02....