Virtualisierung mit Virtualbox Dies ist kein Howto im herkömmlichen Sinne. Genaue Anleitungen für Virtualbox gibt es im Intenet genug. Zu empfehlen ist auch das jeweils aktuelle Handbuch von Virtualbox welches von hier heruntergeladen kann http://www.virtualbox.de/wiki/documentation Hier soll nur auf spezielle Dinge und Besonderheiten, die immer wieder zu Problemen führen, eingegangen werden. Ausgangspunkt ist die Version 4.0 von Virtualbox Von der Seite http://www.virtualbox.de/wiki/downloads wird das Paket für Debian heruntergeladen. Voraussetzungen unter Linux Vor der Installation des Paketes müssen folgende Programme installiert sein: linux-headers <version> exakt passend zum installierten Kernel libxalan110 libxerces27 Der Gnu C-Compiler g++ make Danach kann das heruntergeladene Paket mit dpkg installiert werden. Bei der Installation werden folgende Kernelmodule erzeugt und installiert. Dies sollte überprüft werden. Listing 1 root@milux:/home/michael$ lsmod grep vbox* vboxnetadp 5254 0 vboxnetflt 15408 0 vboxdrv 144401 3 vboxnetadp,vboxnetflt Wird ein neuer Kernel installiert, so muss auch das Kernelmodul vboxdrv neu installiert werden. Dies geschieht mit folgendem Befehl. # etc/init.d/vboxdrv setup 1
Vorbereitungen Mit dem Befehl $ gpasswd -a michael vboxusers wird der angemeldete Benutzer der Gruppe vboxusers hinzugefügt. Dabei wird eine ID angezeigt die wir gleich brauchen. Im Linux Host muss in der Datei /etc/fstab folgender Eintrag hinzugefügt werden, damit im Gastsystem USB genutzt werden kann. Listing 2 # Eintrag für VirtualBox none /proc/bus/usb usbfs devgid=119,devmode=664 0 0 Die Nummer hinter devgid ist die ID der Gruppe vboxusers in der der Benutzer Mitglied sein muss (siehe Befehl oben). Nun kann Virtualbox gestartet und die ersten Virtuellen Maschinen angelegt werden. Um mit Virtualbox optimal arbeiten zu können sollten die Gasterweiterungen auf jeden Fall installiert werden. Installation der Gasterweiterungen (Guest Additions) Die Guest Additions bieten folgende Vorteile: höhere Grafikauflösungen übergangslose Maus zwischen Host und Gast Synchronisation der Zeit zwischen Host und Gast Einrichtung eines Shared Folders (gemeinsamer Ordner von Host und Gast) Windows als Gast In der laufenden VM unter Geräte Gasterweiterungen installieren. Installationsanweisungen folgen. Linux als Gast Im Linux Gastsystem müssen zuvor einige Vorbereitungen getroffen werden. Folgende Dateien müssen installiert sein damit die Kompilierung der Kernelmodule problemlos funktioniert. 2
linux-headers <version> exakt passend zum installierten Kernel Der Gnu C-Compiler g++ make dkms Vor Start der virtuellen Maschine ist unter Datei Manager für virtuelle Medien CD/ DVD-Abbilder das Abbild VBoxGuestAdditions.iso freizugeben. Virtuelle Maschine starten In der laufenden VM unter Geräte das entsprechende CD / DVD Laufwerk einbinden Unter Geräte Gasterweiterungen installieren auswählen Im jeweiligen Dateimanager der VM erscheint die eingebundene.iso Datei In einer Konsole als root in das Verzeichnis der eingebunden.iso Datei wechseln In der Regel ist dies /media/cdrom oder nur /media. Installationsscript ausführen # sh./vboxlinuxadditions.run Sind die Guest Additions erfolgreich installiert, dann erscheint der Hinweis dass das System neu gestartet werden muss um die Installation abzuschließen. In Versuchen mit verschiedenen Debian Derivaten habe ich festgestellt dass trotz korrekter Installation der benötigten Dateien (Header, Compiler) die Erzeugung der Kernelmodule entweder mit einer Fehlermeldung abbricht oder nicht alle Module erzeugt werden. Wird die VM neu gestartet erscheint ein Hinweisfenster dass die Maus nicht mehr gefangen ist. Bei erfolgreicher Installation werden neue Kernelmodule erzeugt. Dies prüfen wir natürlich nach. Der Idealfall sieht so aus: Listing 1 michael@tux:/media$ lsmod grep vbox* vboxsf 27752 0 vboxvideo 1073 1 drm 112088 2 vboxvideo vboxguest 107378 8 vboxsf Es kann sein dass das Modul vboxsf nicht in der Liste auftaucht. Es ist dann zunächst von Hand nachzuladen. root@tux:/home/michael$modprobe vboxsf 3
Wenn das Modul ohne Fehlermeldung nachgeladen werden kann, müssen wir es bei Debian und Derivaten in die Datei /etc/modules von Hand eintragen, damit es beim Systemstart gleich geladen wird. Diese Modul wir für die Einbindung eines gemeinsamen Ordners zwischen Host und Gast benötigt. Erscheint die Fehlermeldung: FATAL: Module vboxsf not found, ist bei der Kompilierung etwas schiefgelaufen. Dieser Fehler ist mir bei einer VM mit Debian Squeeze und Ubuntu 11.04 passiert. Bei LinuxMint 10 hingegen nicht. Was genau passiert ist, habe ich nicht herausfinden können. Abhilfe konnte ich mit der Installation der distributionseigenen GuestAdditions Paketen erreichen. Wenn die jeweiligen Pakete installiert sind werden alle Kernelmodule erzeugt. Hier ist aber zu beachten dass es von Distribution zu Distribution Unterschiede gibt wie die folgenden Listings zeigen: Für Debian Squeeze gilt folgende Liste: Listing 3 root@milux:/media$ dpkg -l virtualbox* Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten Status=Nicht/Installiert/Config/U=Entpackt/halb konfiguriert/ Halb installiert/trigger erwartet/trigger anhängig / Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht) / Name Version Beschreibung +++-=================================-==================== ii virtualbox-guest-additions 3.2.10-1 guest additions iso image for VirtualBox ii virtualbox-ose-dkms 3.2.10-dfsg- 1 x86 virtualization solution - kernel module sources for dkms ii virtualbox-ose-guest-utils 3.2.10-dfsg-1 x86 virtualization solution - non-x11 guest utilities ii virtualbox-ose-guest-x11 3.2.10-dfsg-1 x86 virtualization solution - X11 guest utilities 4
Für Ubuntu folgende: Listing 4 ubuntu ~ # dpkg -l virtualbox* Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten Status=Nicht/Installiert/Config/U=Entpackt/halb konfiguriert/ Halb installiert/trigger erwartet/trigger anhängig / Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht) / Name Version Beschreibung +++-=================================-==================== ii virtualbox-guest-additions 3.2.8-1 guest additions iso image for VirtualBox ii virtualbox-ose 3.2.8-dfsg-2ubuntu1 x86 virtualization solution - base binaries ii virtualbox-ose-guest-dkms 3.2.8-dfsg-2ubuntu1 x86 virtualization solution - guest addition module source for dkms ii virtualbox-ose-guest-utils 3.2.8-dfsg-2ubuntu1 x86 virtualization solution - non-x11 guest utilities ii virtualbox-ose-guest-x11 3.2.8-dfsg-2ubuntu1 x86 virtualization solution - X11 guest utilities ii virtualbox-ose-qt 3.2.8-dfsg-2ubuntu1 x86 virtualization solution - Qt based user interface Die unterschiedlich installierten Pakete hängen damit zusammen dass bei Debian und Ubuntu die Abhängigkeiten der Pakete untereinander anders sind. Shared Folder (Gemeinsamer Ordner von Host und Gast) Wenn die Guest Additions korrekt installiert sind gibt es die Möglichkeit im Host einen Ordner anzulegen, der von beiden Seiten zum Datenaustausch genutzt werden kann. Im Host zunächst einen Ordner anlegen oder einen bereits bestehenden auswählen. Ich habe mich für einen neuen Ordner entschieden $ mkdir VM_Ordner Windows XP als Gast VM starten Menü Geräte Gemeinsamer Ordner Ordner hinzufügen Ordner auswählen OK In Windows Arbeitsplatz öffnen Menü Extra Netzlaufwerk verbinden Laufwerksbuchstaben auswählen (Vorschlag kann übernommen werden) Durchsuchen Unter VirtualBox Shared Folders den 5
zuvor im Host erstellten Ordner auswählen. OK Fertigstellen Im Arbeitsplatz erscheint unter Netzlaufwerke der freigegebene Ordner. Dieser Ordner kann von Host und Gast gemeinsam genutzt werden. Windows 7 als Gast VM starten Menü Geräte Gemeinsamer Ordner Ordner hinzufügen Ordner auswählen OK In Windows Computer öffnen In der 2. Zeile Netzlaufwerk verbinden Ordner durchsuchen VBOXSVR auswählen den entsprechenden Ordner auswählen OK Linux als Gast VM starten Menü Geräte Gemeinsamer Ordner Ordner hinzufügen Ordner auswählen OK In der VM Konsole öffnen und als root folgenden Befehl eingeben # mount -t vboxsf -o uid=1000 <Ordnername> /media/<mountpoint> Dieser Befehl hat den Vorteil dass der User lesend und schreibend auf den Ordner zugreifen kann. Die eigene uid lässt sich mit dem Befehl id herausfinden Ordner kann nun von Gast und Host gemeinsam genutzt werden. Umzug auf ein neu installiertes System Muss aus irgendeinem Grund das System neu aufgesetzt werden oder auf dem Rechner wird ein zweites Linux installiert so können die VM auf das neue System exportiert werden. Dazu wird der Ordner.VirtualBox der sich im /home Verzeichnis des Benutzers befindet kopiert. Ist ein Shared Folder - also ein gemeinsamer Ordner von Host und Gast vorhanden - so muss dieser ebenfalls kopiert werden, da sonst das Programm auf dem neuen Rechner mit einer Fehlermeldung startet. Des weiteren sollte darauf geachtet werden, dass die VM keine Namen mit Sonderzeichen wie z. B. ( ) enthalten, weil es damit beim Kopieren Probleme geben kann. 6
7