1963908

Virtuose Virtualbox-Tricks für Linux

05.08.2014 | 12:05 Uhr |

Virtualisierung erlaubt den Betrieb mehrerer Betriebssysteme auf einer Hardware. Virtualbox hat sich dabei als unkomplizierte Desktop-Virtualisierungs-Software in einer Nische behauptet. Dieser Beitrag zeigt fortgeschrittene Einsatzmöglichkeiten.

Die Virtualisierung von Server-Systemen drängt inzwischen in die Cloud, und auf Linux-Systemen bietet der Kernel eigene Virtualisierungsmöglichkeiten für verschiedene Gastsysteme. Trotz der großen Konkurrenz, in der auch das kommerzielle Vmware Workstation mit fortgeschrittener Hardware-Unterstützung und 3D-Beschleunigung mitmischt, kann sich Virtualbox behaupten. Denn Virtualbox ist mit seiner einfach gehaltenen Oberfläche komfortabel in der Bedienung. Für Windows- und Linux-Gastsysteme gibt es Treiber in Form der Gasterweiterungen, die sogar eine bescheidene Hardware-Beschleunigung für die virtuellen Grafiktreiber bieten, damit in der virtuellen Maschine Oberflächen wie Gnome 3 und Unity anständig laufen. Interessant ist Virtualbox aber nicht nur für Betriebssystem-Bastler, die andere Systeme installieren und ausprobieren wollen, ohne das primäre System dabei anzutasten. Für Linux-Anwender, die gerade von Windows umgestiegen sind, gibt es noch einen weiteren Aspekt: Windows-Programme, die in Wine nicht richtig funktionieren, machen in einer virtuellen Maschine keine Probleme, da hier ein komplettes Windows läuft.

Dieser Artikel stammt aus der LinuxWelt 4/2014

Das neue Ubuntu LTS, der große Desktop-Guide, Ihre Festplatte 20 x schneller, Linux statt Windows XP - das und mehr finden Sie in der neuen LinuxWelt 4/2014 .

Skalierter Modus ohne Menüleiste: Der Modus ist nützlich, wenn die Auflösung des virtuellen Systems zu groß ist. Sie beenden den Modus mit rechter Strg-Taste und Taste C.
Vergrößern Skalierter Modus ohne Menüleiste: Der Modus ist nützlich, wenn die Auflösung des virtuellen Systems zu groß ist. Sie beenden den Modus mit rechter Strg-Taste und Taste C.

Ansichtssache: Vollbild bis skalierter Modus

Virtualbox unterstützt bei der Anzeige von virtuellen Maschinen neben dem normalen Fenstermodus noch weitere Modi, die ein virtuelles System möglichst eng mit dem Host-System verzahnen sollen. Dabei ist es wichtig, sich die Tastenkürzel von Virtualbox zu merken, denn aus manchem Modus kommt man nur mit der richtigen Tastenkombination wieder heraus.

Vollbildmodus: Ideal ist die Anzeige, wenn gerade nur der Desktop und die Programme des Gastsystems benötigt werden. Am unteren Bildschirmrand gibt es eine Werkzeugleiste mit dem Virtualbox-Menü, das sich beim Darüberfahren mit der Maus einblendet.

Nahtloser Modus : Auf dem Host-System produziert dieser Modus einen Fenster-Mix, da Programmfenster aus dem virtuellen System direkt auf dem Desktop dargestellt werden. Nützlich ist dies, wenn man mit einer bestimmten Anwendung aus dem virtuellen System arbeiten will, aber nicht dessen kompletten Desktop braucht. Die Tastenkombination von rechter Strg-Taste mit L schaltet wieder zurück in den Fenstermodus.

Skalierter Modus: Diese Darstellung ist für Gastsysteme geeignet, deren Auflösung größer ist als die verfügbare Bildschirmauflösung. Das Virtualbox-Menü ist dabei unsichtbar. Aus dem Modus geht es mit der rechten Strg-Taste und C wieder zurück zum Fenstermodus.

Wo bleiben die USB-Geräte?

Obwohl das Host-System ein angeschlossenes USB-Gerät anstandslos erkennt, will es in der Virtualbox manchmal nicht funktionieren. Auch in der Liste unter „Geräte -> USB-Geräte“ taucht es nicht auf. In den meisten Fällen liegt ein Berechtigungsproblem vor, das Virtualbox daran hindert, auf das USB-Subsystem des Hosts zuzugreifen. Um dies zu diagnostizieren, geben Sie in einem Terminal-Fenster das Kommando

VBoxManage list usbhost

ein, um die von Virtualbox erkannten USB-Geräte aufzulisten. Ist die Liste leer, dann ist klar, dass der Zugriff generell verwehrt ist. Die Ursache ist nahezu immer eine fehlende Gruppenzugehörigkeit des Benutzers, der Virtualbox ausgeführt hat. Damit das USB-Subsystem in Virtualbox funktioniert, muss der Benutzer nämlich Mitglied der Gruppe „vboxusers“ sein, die bei der Installation von Virtualbox automatisch angelegt wird. Um das Problem zu beheben, führen Sie in einem Terminal-Fenster das Kommando

/usr/sbin/usermod -a -G virtualbox [Benutzername]

mit root-Rechten oder mit vorangestelltem sudo aus. Den Platzhalter „[Benutzername]“ ersetzen Sie durch Ihren tatsächlichen Namen auf dem System. Danach ist eine Neunmeldung am System nötig, damit die neue Mitgliedschaft gültig ist.

Welches Linux ist das Richtige?

Keine Verbindung zu USB: Bleibt die Liste der USB-Geräte leer, liegt das meist daran, dass der Benutzer, der Virtualbox ausführt, kein Mitglied in der Gruppe „vboxusers“ ist.
Vergrößern Keine Verbindung zu USB: Bleibt die Liste der USB-Geräte leer, liegt das meist daran, dass der Benutzer, der Virtualbox ausführt, kein Mitglied in der Gruppe „vboxusers“ ist.

Virtuelle Festplatten vergrößern

Bei virtuellen Systemen, die über Jahre gepflegt und erweitert werden, kann es vorkommen, dass der Platz der virtuellen Festplatte nicht mehr ausreicht. In diesem Fall ist es natürlich leicht möglich, eine zweite virtuelle Platte hinzuzufügen. Im Gastsystem erscheint diese dann als separate Festplatte und muss erst noch in das bestehende Partitionsschema aufgenommen werden. Es gibt noch eine andere Möglichkeit, die mit dem vorhandenen Partitionsschema arbeitet: Das Kommandozeilen-Werkzeug von Virtualbox kann nachträglich eine virtuelle Festplatte ohne Neuinstallation des virtuellen Systemsvergrößern. Vorausgesetzt, es handelt sich dabei um virtuelle Festplatten im nativen Format VDI oder um Microsofts VHD-Format. Zudem sollte es sich um Platten von dynamischer Größe handeln. Snapshots müssen deaktviert sein. Diese beiden Voraussetzungen sind aber kein Hindernis, da Virtualbox auch dynamische Platten und Snapshot-Images in das Standardformat umwandeln kann. So funktioniert es:
 
1. Falls die zu vergrößernde Festplatte kein dynamisches Festplatten-Image ist, dann wandeln Sie das Image zunächst mit dem Befehl

VBoxManage clonehd [Dateiname] [Dateiname neu] --format VDI --variant Standard

in einem Terminal-Fenster um. Dabei wird eine Kopie erzeugt, das originale Image bleibt erhalten. Für die Platzhalter „[Dateiname]“ und „[Dateiname neu]“ tragen Sie den Pfad zur VDI oder VHD-Datei ein – etwa „/home/user/VDI/winxppro.vdi“ und „/home/user/VDI/winxppro2.vdi“. Den Pfad und den Typ der virtuellen Festplatte verrät eine virtuelle Maschine unter „Ändern -> Massenspeicher“.

2. Auf die VDI-Datei wenden Sie jetzt zum Vergrößern das Kommando

VBoxManage modifyhd [Dateiname] --resize [Megabyte]

an, wobei der „[Dateiname]“ wieder den Pfad zur VDI-Datei angibt und „[Megabyte]“ die neue Größe in MB angibt. Der Wert „20480“ entspräche hier 20 GB.

3. Nun müssen noch die Partitionen des Gastsystems in der virtuellen Maschine auf die neue Festplatte ausgedehnt werden. Wie auch bei physikalisch installierten Systemen hilft dabei sowohl bei Windows- als auch bei Linux-Systemen der Partitionierer Gparted weiter. Sie können diesen über das Live-System Parted Magic starten. Dort markieren Sie die gewünschte Partition und gehen auf „Größe ändern/Verschieben“, um die Partition auf die neue Festplattengröße auszudehnen. Bei den Windows-Gastsystemen Vista/7/8 kann auch die Festplattenverwaltung („diskmgmt.msc“) Partitionen ausdehnen.

Mehr Platz für virtuelle Maschinen: Das Kommandozeilentool Vboxmanage kann virtuelle Festplatten auch im Nachhinein vergrößern. Dabei muss es sich aber um Festplatten mit dynamischer Größe handeln.
Vergrößern Mehr Platz für virtuelle Maschinen: Das Kommandozeilentool Vboxmanage kann virtuelle Festplatten auch im Nachhinein vergrößern. Dabei muss es sich aber um Festplatten mit dynamischer Größe handeln.

Virtuelle Maschinen im Netzwerk

Wenn das Virtualbox Extension Pack installiert ist, steht ein Gastsystem als Remote-Desktop auch über das Netzwerk zur Verfügung. Dies ist nützlich, wenn ein zentraler PC mehrere Virtualbox-Maschinen für schwächere Clients anbieten soll.

Sie aktivieren RDP und einen Netzwerk-Port in den Einstellungen einervirtuellen Maschine unter „Ändern -> Anzeige -> Fernsteuerung“. Aktivieren Sie dort die Option „Server aktivieren“, und stellen Sie einen „Serverport“ zwischen 1024 und 65535 ein. Das verwendete Protokoll ist Microsoft Rdesktop, als „Remote-Desktopverbindung“ unter Windows bekannt, für das es auch unter Linux zahlreiche Clients gibt. Ein oft vorinstallierter grafischer Client ist „Remmina“, der zusammen mit dem RDP-Plug-in das Protokoll spricht.

Das Programm findet sich in den Paketquellen aller verbreiteten Linux-Distributionen, in Ubuntu beispielsweise mit den Paketnamen „remmina“ und „remmina-plugin-rdp“. Für die Kommandozeile gibt es ebenfalls bei allen Linux-Systemen das Tool rdesktop, das mittels

rdesktop [IP-Adresse/Server-Name]:[Port]

eine Verbindung zu Virtualbox aufbaut.

Virtualbox über das Netz steuern

RDP ist nützlich, um sich zu einer laufenden VM zu verbinden. Aber wie lässt sich Virtualbox selbst über das Netzwerk steuern, um Maschinen starten und anzuhalten? Virtualbox unterstützt für diesen Zweck eine API, die mittels Soap (Simple Object Access Protocol) mit Clients spricht. Dazu muss auf dem Host-System nur mit

vboxwebsrv -b [Host/IP-Adresse]
Aus der Ferne eine virtuelle Maschine nutzen: Das „Virtualbox Extension Pack“ schaltet den RDP-Server frei, um sich zu laufenden Maschinen auf dem Virtualbox-Host per Rdesktop-Protokoll zu verbinden.
Vergrößern Aus der Ferne eine virtuelle Maschine nutzen: Das „Virtualbox Extension Pack“ schaltet den RDP-Server frei, um sich zu laufenden Maschinen auf dem Virtualbox-Host per Rdesktop-Protokoll zu verbinden.

der API-Server gestartet werden, der im normalem Benutzerkontext läuft und dann auf die VMs dieses Benutzer zugreifen darf. Der Parameter „[Host/IP-Adresse]“ gibt die Netzwerkadresse des Servers an, ansonsten läuft der Dienst nur auf dem Local Host für lokale Zugriffe. Alternative Oberflächen können dann vom Client aus die Virtualbox steuern. Zwei Open-Source-Projekte haben sich hier bewährt:

Remotebox: Das Linux-Programm nutzt Perl, um die Virtualbox-API über das Netzwerk anzusprechen, und bietet dafür auf dem Client eine grafische englischsprachige Oberfläche, die sich an der gewohnten GUI von Virtualbox orientiert. Den Quellcode (700 KB) sowie Links zu fertigen Paketen für Ubuntu, Fedora, Red Hat gibt es unter http://remotebox.knobgoblin.org.uk .

Phpvirtualbox: Einen anderen Weg geht das PHP-Tool „Phpvirtualbox“, das über einen Webserver auf dem Host-System eine Weboberfläche für Clients bereitstellt. Die Einrichtung ist anspruchsvoller, da sie auf dem Virtualbox-Host einen Webserver wie Apache und PHP voraussetzt. Der Vorteil ist, dass andere PCs für den Zugriff nur einen Browser und RDP-Client benötigen. Archive mit den PHP-Dateien und eine englischsprachige Anleitung gibt es unter http://sourceforge.net/projects/phpvirtualbox .

Warum Linux so sicher ist

Tastatur-Scancodes in Virtualbox
Vergrößern Tastatur-Scancodes in Virtualbox

Tastendruck per Befehlszeile simulieren

In Linux-Gastsystemen ist es nicht einfach möglich, wie auf einem physikalisch installierten Linux-System mit den Tastenkürzeln Alt-Strg-F1 bis Alt-Strg-F7 in Textkonsolen zu wechseln. Denn dabei reagiert das Host-System auf diese Tasten. Genauso verhält sich Strg-Alt-Löschen, das auch unter Windows hin und wieder benötigt wird. Virtualbox löst das Dilemma, indem diese Eingaben für das Gastsystem über eine alternative Tastenkombination erfolgen, in welchen die übliche linke Strg-Taste mit der rechten Strg-Taste ersetzt wird. In einem Ubuntu-Gast wechselt beispielsweise Strg (rechts)-Alt-F1 auf die erste Konsole (tty1) und Strg (rechts)-Alt-F7 zurück zum Desktop. Leider hängen diese Kombinationen und funktionieren auch beim RDP-Zugriff über das Netzwerk nicht. Hier hilft der Trick, eine Tastenkombination per Kommandozeile zu simulieren. Machen Sie in der Kommandozeile des Virtualbox-Hosts mit

VBoxManage list runningvms

den Namen der VM ausfindig, und mit

VBoxManage controlvm [VM] key boardputscancode 1d 38 3b

können Sie dann per Tastencode eine beliebige Tastenkombination an die in „[VM]“ angegebene Maschinen schicken, in diesem Beispiel beispielsweise Alt-Strg-F1. Die Tastaturcodes weiterer Kombinationen entnehmen Sie der Tabelle oben.

Abkürzung: VM direkt starten

Der Weg, eine virtuelle Maschine zu starten, führt üblicherweise über die Oberfläche von Virtualbox. Wer aber oft dasselbe System startet, kann dies auch direkt über einen Terminal-Befehl oder im Ausführen-Dialog erledigen:

VBoxManage startvm "[VM-Name]"

In Desktop-Umgebungen wie KDE und XFCE, die es weiterhin erlauben, eigene Programmstarter im Panel unterzubringen, lässt sich dieser Befehl dort auch als Symbol ablegen. Der Platzhalter „[VM-Name]“ ist stets die Bezeichnung der virtuellen Maschine, wie sie auch in der grafischen Oberfläche von Virtualbox angezeigt wird. Diese Liste zeigt außerdem auch der Terminalbefehl

VBoxManage list vms.

in einem Terminal-Fenster an.

Alles im Browser: Phpvirtualbox braucht einen Webserver mit PHP. Auf dem Virtualbox-Host stellt es zur Steuerung über das Netzwerk eine komplette Weboberfläche bereit.
Vergrößern Alles im Browser: Phpvirtualbox braucht einen Webserver mit PHP. Auf dem Virtualbox-Host stellt es zur Steuerung über das Netzwerk eine komplette Weboberfläche bereit.

USB 2.0 und RDP - Erweiterungspaket installieren

Virtualbox startete als Projekt der Baden-Württembergischen Firma Innotek, die zuvor schon an Virtual-PC arbeitete, bevor Microsoft diesen Virtualisierer kaufte. 2004 erschien Virtualbox in zwei Versionen – einmal unter einer kommerziellen Lizenz mit USB-2-Support und RDP-Server, ferner als reduzierte Open-Source-Version ohne diese Merkmale. 2008 übernahm Sun Microsystems, später Oracle die Entwicklerfirma und führte beide Versionen in eine einzige zusammen, die unter der GNU General Public License 2 erschien. USB 2.0 und RDP wurden dafür in ein optionales Erweiterungspaket ausgelagert, das als Freeware (kostenlos für private Nutzung) zum nachträglichen Download bereitsteht. Aus diesem Grund ist es nach der Installation von Virtualbox noch nötig, für den kompletten Funktionsumfang das „Virtualbox Extension Pack“ jeweils in der passenden Versionsnummer herunterzuladen und dann in der Virtualbox über „Datei -> Globale Einstellungen -> Zusatzpakete“ zu installieren. Die Installation kann auch auf der Kommandozeile erfolgen, falls Virtualbox auf einem Server ohne grafischer Oberfläche läuft:

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-[Version].vbox-extpack

Der Befehl muss als root oder mit vorangestelltem sudo ausgeführt werden, und „[Version]“ steht für die tatsächliche Versionsnummer der Datei. Diese muss stets zur eingesetzten Version von Virtualbox passen. Falls es sich um ein Update auf eine neuere Version handelt, dann fügen Sie dem Kommando hinter „install“ nur den Parameter „--replace“ hinzu.

0 Kommentare zu diesem Artikel
1963908