Virtualbox
Das Programm Virtualbox ist eine Lösung für die Nutzung von Computer-Betriebssystemen in einer virtuellen Umgebung: Virtualbox simuliert die Hardware eines Standard-PCs und ermöglicht so den Start eines Betriebssystems in dieser virtuellen Umgebung. Dies bedeutet, dass z.B. ein lauffähiges Windows installiert werden kann, auf das vom Hostsystem im laufenden Betrieb aus zugegriffen wird. Dieser Artikel behandelt den Einsatz von Virtualbox als Lösung für die Nutzung von Windows oder Linux im Desktop-Betrieb. Die Verwendung von virtuellen Umgebungen im Webserver-Bereich wird hier nicht behandelt.
Einsatz von Virtualbox in der Praxis
Virtualbox auf einem Linux-System eröffnet zahlreiche Möglichkeiten, wobei in der Praxis die folgenden Verwendungen auf einem Desktop-Rechner sinnvoll sind:
- Windows als Gast-System: Die Installation eines kompletten Windows als virtueller Maschine öffnet einem Linux-Nutzer (fast) die gesamte Welt der Windows-Software: ELSTER, MS Office, iTunes, Internet Explorer, EUMEX-Konfigurationssoftware u.v.m. Besonders angenehm ist dabei, dass die Programme genauso wie unter Windows funktionieren. Eine Webseite z.B. sieht in einem virtuellen Windows mit Internet Explorer so aus, wie sie ein Windows-Nutzer mit vergleichbarer Hardware ebenfalls sieht. VORSICHT: Besonders ressourcen-hungrige Software kann unter Virtualbox NICHT sinnvoll genutzt werden. Virtualbox ist somit KEINE Möglichkeit zum produktiven Arbeiten mit Videoschnitt-Software wie Adobes Creative Suite etc.
- Linux als Gast-System: Eine virtuelle Linux-Installation ist ideal zum Testen neuer Distributionen, von Live-Systemen wie KNOPPIX etc. oder zum Rumspielen. Auch kann man Programme wie einen Apache-Webserver für lokale Testzwecke sehr gut in einer virtuellen Maschine betreiben.
Installation und Lizenz
Virtualbox ist in den Debian-Paketquellen enthalten und wird ganz normal über die Paketverwaltung installiert:
root@debian:~# apt-get install virtualbox
Die in Debian enthaltene Version von Virtualbox steht unter der GPL und kann daher frei verwendet werden. Bis Squeeze gibt es dabei noch die Unterscheidung in Virtualbox und Virtualbox-OSE. Die verschiedenen Paketnamen beziehen sich auf die unterschiedlichen Lizenzierung von Virtualbox bis zur Übernahme durch ORACLE: Zu Innotek- bzw. Sun-Zeiten gab es zwei verschiedene Ausgaben von Virtualbox. Dies waren die freie OSE-Version (GPL v2) und die unfreie, etwas aufgebohrte PUEL-Version. Damals enthielt das Paket virtualbox die PUEL-Version und stammte direkt von http://virtualbox.org. Das Paket virtualbox-ose enthielt dementsprechend die OSE-Version und war in Debian main zu finden. Nach der Übernahme von Sun durch Oracle wurde die PUEL-Version als eigenständige Version eingestellt. Seitdem erhält man diverse proprietäre Features in Form von Modulen, die auf die OSE-Version aufsetzen. Die Änderung des Debian-Paketnamens spiegelt diese Änderung der Verteilungspolitik wieder, inklusive releasebedingter Verzögerungen usw.
Gasterweiterungen installieren
Durch die Gasterweiterungen wird die virtuelle Maschine um mehrere Funktionen erweitert.
Hinweis: Es gibt zwei verschiedene Erweiterungen: Die Gasterweiterungen (englisch: Guest Additions) und das Oracle VM VirtualBox Extension Pack. Letzteres bietet einige zusätzliche Funktionen (wie eine virtuelle USB-3-Schnittstelle), steht aber unter einer proprietären Lizenz. Vergleiche hierzu: Quelle 1 und Quelle 2 |
Vorbereitungen im Hostsystem
Im Hostsystem muss zunächst das Paket virtualbox-guest-additions-iso installiert werden. Ist das Hostsystem ein Debiansystem erfolgt dies über folgende Eingabe:
root@debian:~# apt-get install virtualbox-guest-additions-iso
Installation im Gastsystem
Danach kann die Installation im Gast erfolgen. Hierzu bindet man zunächst das Gasterweiterungs.iso über Geräte --> Gasterweiterungen einlegen... ein.
Das .iso heißt VBoxGuestAdditions.iso und befindet sich in folgendem Verzeichnis: /usr/share/virtualbox
Hinweis: In der offiziellen Anleitung auf virtualbox.org wird empfohlen zunächst im Gastsystem die Pakete make und gcc zu installieren und das System danach neu zu starten |
- In Linux als Gast-System muss das Paket build-essential und die linux-headers passend zum laufenden Kernel installiert sein:
root@debian:~# apt-get install build-essential linux-headers-$(uname -r)
Hinweis: Ist das Hostsystem ein Linux-System, wird in der offiziellen Anleitung auf virtualbox.org empfohlen im Gastsystem dkms statt build-essential zu installieren. |
Nach der Installation müssen die zur Verfügung stehenden Gasterweiterungen entweder grafisch oder via folgenden Befehl gemountet werden:
root@debian:~# mount /dev/cdrom /media/cdrom
Die Installation der Gasterweiterungen erfolgt anschließend über:
root@debian:~# sh /media/cdrom/VBoxLinuxAdditions.run
- In Windows als Gast-System finden sich die Gasterweiterungen im CD-ROM-Laufwerk und können von dort über die entsprechende .exe installiert werden.
USB-Nutzung in der virtuellen Maschine
Benutzeraccount zur "vboxusers" group hinzufügen
Damit USB-Geräte in einer virtuellen Maschine verwendet werden können, muss das Oracle VM VirtualBox Extension Pack installiert sein, siehe Gasterweiterungen installieren. Handelt es sich beim Hostsystem um ein Linuxsystem, dann müssen Sie Ihren Account von dem aus Sie die virtuelle Maschine starten in der Sie ein USB-Gerät verwenden möchten zur Gruppe vboxusers hinzufügen.[1]
Hinweis: Beenden Sie vorher das Programm Virtualbox und alle evtl. laufenden virtuellen Maschinen. |
Das geht entweder grafisch, indem Sie (im Hostsystem) über Einstellungen --> Benutzer und Gruppen das Fenster aufrufen, indem Sie Ihrem Account weitere Gruppen zuordnen könnnen.
Oder Sie nutzen folgenden Befehl im Terminal:
Hinweis: Ersetzen Sie ihrbenutzername durch Ihren tatsächlichen Benutzernamen. |
root@debian:~# adduser ihrbenutzername vboxusers
Melden Sie (im Hostsystem) Ihr Benutzerkonto ab und wieder an.
Filter für USB-Gerät anlegen
Danach können Sie in den Einstellungen der virtuellen Maschine einen Filter anlegen, sodass nur ein bestimmtes USB-Gerät mit der virtuellen Maschine verwendet wird.
- Schließen Sie dazu zunächst das entsprechende USB-Gerät an Ihren Computer an.
- Rufen Sie dann den Virtualbox Manager auf, markieren Sie in der Liste die entsprechende virtuelle Maschine und klicken Sie auf Ändern....
- Wählen Sie die Kategorie USB und drücken Sie die Tastenkombination Alt + Einfg oder klicken Sie mit der rechten Maustaste auf das Feld in dem die erstellten Filter angezeigt werden und wählen Sie Filter von einem Gerät hinzufügen.
- Wählen Sie dann das entsprechende USB-Gerät aus der Liste aus. Bestätigen Sie die Änderung mit einem Klick auf OK.
Wenn Sie die virtuelle Maschine nun starten, sollte das angeschlossene USB-Gerät an der entsprechenden Stelle angezeigt werden und verwendbar sein.
USB-Hardware für die kein Linux-Treiber verfügbar ist
Gerade für "exotische" USB-Hardware ohne Linux-Treiber ist Virtualbox eine perfekte Lösung - sofern man eine Windows-Lizenz hat: Durch Windows in einer virtuellen Maschine lassen sich USB-Geräte durch die Windows-Treiber ansprechen. Dafür muss allerdings das USB-Gerät an Virtualbox "durchgereicht" werden. Dazu muss in Virtualbox die Erweiterung "Oracle Virtualbox Extension Pack" installiert werden, die man hier findet:
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#extpack
Den Menü-Punkt zum Hinzufügen von Erweiterungen findet man bei Virtualbox unter "Datei - Globale Einstellungen - Zusatzpakete"
Zusätzlich musste ich die /etc/fstab um folgenden Eintrag erweitern:
none /proc/bus/usb usbfs devgid=XXX,devmode=664 0 0
Wobei es sich anbietet, dass man für devgid entweder die GID des eigenen Users nimmt bzw die GID der Gruppe vboxusers. Dabei sollte man nicht vergessen, dass man den eigenen User zur Gruppe vboxusers hinzufügt, denn sonst wird das nix.
Zum Abschluss führt man einen Neustart durch und schon kann man USB per Virtualbox nutzen.
Booten von USB
Für das Booten von USB-Sticks bedarf es einiger Kniffe. Zunächst muss ein HardDisks-Ordner im eigenem /home-Verzeichnis erstellt werden:
user@debian:~$ mkdir /home/user/.VirtualBox/HardDisks
User muss hierbei durch den eigenen Nutzernamen ersetzt werden. Anschließend erstellt man eine .vmdk Datei.
user@debian:~$ VBoxManage internalcommands createrawvmdk -filename /home/user/.VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Auch hierbei muss der eigenen Nutzername eingetragen und die Gerätebezeichnung (/dev/sdb) ersetzt werden. Wie der USB-Stick angesprochen wird kann mit fdisk ermittelt werden. Beim Anlegen einer neuen virtuellen Maschine kann man den USB-Stick nun als existierende virtuelle Festplatte einbinden.
Klonen von Images
Oft ist es sinnvoll, dass man bereits erstellte virtuelle Maschinen klont. Dies funktioniert am Einfachsten über die Konsole:
root@debian:~# VBoxManage clonehd virtuelle_Maschine.vdi Klon.vdi --format VDI
VDI ist das Datei-Format von Virtualbox für virtuelle Maschinen. Bei virtuelle_Maschine.vdi nimmt man eine bestehende VDI-Datei, die im User-Home unter .VirtualBox/VDI Zuhause sind.
Gemeinsame Ordner
Mit der Funktion gemeinsame Ordner von VirtualBox, kann innerhalb des Gastsystems auf Dateien des Hostsystems zugegriffen werden. Gemeinsame Ordner werden von Microsoft Windows (2000 oder neuer), Linux und Solaris Gastsystemen unterstützt und benötigen die Gasterweiterungen.
manuelles Einhängen
- Microsoft Windows als Gastsystem, kann auf gemeinsame Ordner mit dem Dateimanager Windows Explorer zugreifen. Die Ordner befinden sich als Netzwerkfreigabe unter My Networking Places --> Entire Network --> VirtualBox Shared Folders.
Mit einem Rechtsklick auf die Netzwerkfreigabe kann unter dem Menüpunkt Map network drive des Kontextmenüs, der Netzwerkfreigabe ein Laufwerksbuchstabe zugeordnet werden, um diese in die Verzeichnishierarchie hinzuzufügen. Alternativ kann dazu auch der Windows Kommandoprocessor (cmd.exe) genutzt werden. Das Kommando ist: net use x: \\vboxsvr\sharename. Wobei x: ein freier Laufwerksbuchstabe sein muss und sharename der Ordnername aus der Einstellung Gemeinsame Ordner der virtuellen Maschine.
- GNU/Linux als Gastsystem, wird ein gemeinsamer Ordner der Verzeichnishierarchie mit dem Kommando mount hinzugefügt: mount -t vboxsf [-o OPTIONS] sharename mountpoint.
Damit ein gemeinsamer Ordner während des Startvorgangs eingehängt wird, muss dieser mit folgendem Eintrag in die Datei /etc/fstab (statische Informationen über Dateisysteme) hinzugefügt werden: sharename mountpoint vboxsf defaults 0 0. Wobei sharename der Ordnername aus der Einstellung Gemeinsame Ordner der virtuellen Maschine ist.
automatisch einbinden
VirtualBox kann gemeinsame Ordner automatisch einhängen. Ist das automatische einbinden für einen gemeinsamen Ordner aktiviert, wird dieser durch die Gasterweiterungen eingehängt.
Dabei unterscheiden sich die verschiedenen Gastsysteme wie folgt:
- Microsoft Windows Gastsysteme weisen jedem automatisch eingehängten Ordner einen eigenen Laufwerksbuchstaben zu (bspw. E:). Sind keine freien Laufwerksbuchstaben mehr vorhanden, schlägt das automatische einbinden fehl. Die Anzahl von Ordner die automatisch eingehängt werden können, ist für Microsoft Windows Gastsysteme typischer Weise auf 22 oder weniger beschränkt.
- GNU/Linux Gastsysteme hängen automatisch eingebundene Ordner im Verzeichnis /media ein, wobei allen Ordnernamen das Präfix sf_ voran gestellt wird (Anm: Wahrscheinlich für shared folder). Beispielsweise würde der gemeinsame Ordner myfiles als /media/sf_myfiles eingehängt. Zugriff auf automatisch eingebundene Ordner erhalten nur Mitglieder der Gruppe vboxsf (VirtualBox shared folder), die durch die Gasterweiterungen erstellt wurde. Dies bedeutet, dass innerhalb des Gastsystems, nur Mitglieder dieser Gruppe Zugriff auf die Ordner erhalten und das eigene Benutzerkonto dieser Gruppe hinzugefügt werden muss.
In einer gestarteten virtuelle Maschine können gemeinsame Ordner nur manuell ein- oder ausgehängt werden.
Es ist möglich ein Verzeichnis vom Hostsystem in mehrere Gastsysteme einzuhängen.