VirtualBox

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Dieser Artikel ist Teil der HOWTO Sammlung
Achtung Achtung: Ab Fedora 7 gibt es nun auch ein Paket und die Installation beschränkt sich auf das Installieren des rpm-Paketes. SELinux und auch die Benutzer werden nun automatisch konfiguriert.

Mit VirtualBox hat InnoTek ein leisstungsstarkes Virtualizierungs-System für x86-System entwickelt, welches unter der GNU Public License (GPL) steht. Momentan läuft VirtualBox auf Windows und Linux 32-bit Hosts und unterstützt eine grosse Anzahl von Gast-Betriebssystemen (Windows NT 4.0, 2000, XP, Server 2003, Vista), DOS/Windows 3.x, Linux (2.4 and 2.6), FreeBSD und OpenBSD. Detaillierte Informationen über die Gast-Systeme können unter Gast Betriebssysteme gefunden werden. Von VirtualBox existieren zwei Variante: eine VirtualBox Open Source Edition (OSE) und eine Closed-source-Edition mit weiteren Features. Mehr unter Vergleich der Editionen.

Die Hardware, welche von VirtualBox zur Verfügung gestellt wird, umfasst neben Harddisk, CD-Rom und Floppy-Laufwerk folgende Komponenten

  • Intel-Chipsatz 440FX (Natoma)
  • Netzwerkkarte AMD 79C973 (PCnet II) (bis 4 Karten)
  • Intel-AC97-Sound
  • Standard-VGA-Karte
  • USB-Controller (mit 8 Ports)

Die CPU-Zugriffe werden direkt an die reale CPU weitergeleitet. Für die Kommunikation mit einer laufendes System ohne GUI steht das RDP-Protokoll bereit.


Inhaltsverzeichnis

Installation

Vorbereitung

VirtualBox benötigt für den Betrieb folgende Pakete:

  • Qt 3.3.5 oder höher
  • SDL 1.2.7 oder höher

Nachinstallation der benötigten Pakete kann per Yum erfolgen.

[root]# yum install gcc gcc-c++ kernel-devel SDL-devel compat-libstdc++-33

VirtualBox installieren (binäre Version)

Sun stellt zwei Versionen von VirtualBox zur Verfügung. Zuerst die Installation der Binär-Version.

Heruntergeladen werden kann VirtualBox von dieser Stelle.

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=innotek-1.6-G-F@CDS-CDS_SMI

Dort die passende Version auswählen und herunterladen.

Dann eine Konsole starten und in den Ordner wechseln in dem das VirtualBox-RPM liegt und installieren.

[root]# rpm -Uvh VirtualBox-1.6.4_33808_fedora9-1.x86_64.rpm

Installation der svn-Version

Die VirtualBox Open Source Edition (OSE) wird von VirtualBox als svn-Version zur Verfügung gestellt und kann selber kompiliert werden.

Folgende Pakete müssen vorhanden sein. Die Installation kann per Yum erfolgen.

  • GCC 3.2.3 oder später
  • as86
  • bcc (Bruce Evans C Compiler; often part of the dev86 package)
  • IASL (Intel ACPI Compiler)
  • xsltproc
  • libxerces (Xerces XML Parser, die C++-Version, nicht die Java-Version)
  • libxalan (Xalan XSL Library, abhängig von Xerces, noch einmal die C++-Version, nicht die Java-Version)
  • libXcursor (wird für einen farbigen Maus-Zeiger in Gast-Systemen gebraucht)
  • Qt 3.3.x (mit x >= 5 wenn möglich)
  • libIDL
  • libSDL
  • uuid
  • ALSA

Mit folgendem Befehl können die entsprechenden Dateien bezogen werden.

svn co http://virtualbox.org/svn/vbox/trunk vbox

VirtualBox wird mit dem kmk-Befehl (Dieses Kommando wurde von InnoTek als Teil des kBuild-Systems entwickelt) gebaut.

Folgende Optionen stehen zur Verfügung. Standard ist release.

  • release
  • debug
  • profile

Mit kBuild kann die BUILD_TYPE Umgebungsvariabel gesetzt werden.

Nun ins Wurzelverzeichnis der Sourcen wechseln und das Konfigurations-Skript ausführen.

[root]# ./configure

Es wird eine Datei mit dem Namen AutoConfig.kmk angelegt, welche alle Pfad-Informationen zu den benötigten Tools enthält. Ebenfalls wird ein Umgebungs-Setup-Skript env.sh angelegt. Dieser Schritt muss nur einmal ausgeführt werden. Für weitere Versionen kann auf diese Informationen zugegriffen werden. Wenn nun eine Version von VirtualBox generiert werden soll, muss zuerst das Umgebungs-Setup-Skript env.sh "gesourcet" werden.

[root]# source ./env.sh

Um nun das Release-Paket zu bauen, kann nun kmk aufgerufen werden.

[root]# kmk all

Mit kmk BUILD_TYPE=debug wird eine eine debug-Version gemacht.

Für Mehr-Prozessor-Systeme kann mit der Option -j3 für kmk gearbeitet werden. Die Nummer setzt sich aus Anzahl der Prozessoren plus 1 zusammen. Mathematisch korrekter: n+1 (n Anzahl der Prozessoren)

Die benötigten Binaries werden im Verzeichnis out/linux.x86/release/bin/ angelegt.

Benutzer zur Gruppe vboxusers

Der gewünschte Benutzer wird nun zur Gruppe vboxusers als Mitglied hinzugefügt.

[root]# /usr/sbin/usermod --append --groups vboxusers [Benutzername]

Das System muss neugestartet werden, damit die Gruppenzugehörigkeit wirksam wird.

SELinux

Bei aktiviertem SELinux die Zugriffsrechte überprüfen.

[root]# audit2why < /var/log/messages

Falls nicht vorhanden, muss mit yum noch checkpolicy installiert werden.

[root]# yum -y install checkpolicy

Falls erforderlich mit folgendem Befehl eine neue Policy erstellen

[root]# audit2allow -a -M vbox

Die Ausgabe sieht wie folgt aus.

Erstelle Type Enforcement Datei vbox.te
Kompiliere Richtlinie
checkmodule -M -m -o vbox.mod vbox.te
semodule_package -o vbox.pp -m vbox.mod

******************** WICHTIG ***********************

Um das neu erstellte Richtlinienpaket in den Kernel zu laden, ist es notwendig folgendes auszuführen.

semodule -i vbox.pp

Nun noch das Paket laden

[root]# semodule -i vbox.pp


Verwendung

Das GUI kann per Shell oder aus dem Menü gestartet werden. Es erscheint nun ein Fenster, welches die Bedienung sehr vereinfach macht und alle nötigen Einstellungen für das Gast-System gemacht werden können.

Start der Binär-Version

Der Start per Konsole

[root]# VirtualBox

Der VirtualBox-Start über das Menü läuft so.

-> Anwendungen -> Systemprogramme -> InnoTek VirtualBox

Starten der Build-Version

VirtualBox kann später direkt aus dem Build-Verzeichnis out/linux.x86/release/bin/ gestartet werden. Zuerst muss jedoch noch das Kernel-Modul vboxdrv gebaut werden.

In das entsprechende Verzeichnis gewechseln

[root]# cd out/linux.x86/release/bin/src

Nun make und make install aufrufen

[root]# make && make install

Das Modul sollte nun im entsprechenden Verzeichnis installiert worden sein. Schreib- und Lesezugriff auf /dev/vboxdrv muss vorhanden sein. Nun kann das Modul geladen werden.

[root]# modprobe vboxdrv

Screenshot des VirtualBox-GUI

Anlegen von Gast-Systemen

Über den Wizard lassen sich bequem Gast-Systeme anlegen. Ein Festplattenmanager verwaltet die Image-Dateien für die virtuellen Festplatten und kann diese auch erstellen. Das CD-/DVD-Laufwerk wird vom Host-System an den Gast weitergegeben oder es können ISO-Images einbunden werden.

Der VirtualBox-Assistent
Start des Assistent
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Allgemeine Einleitung. Durch Drücken von Next > gelangt man weiter.
Namensgebung und Systemauswahl
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Unter Name sollte ein aussaekräftiger Name angegeben werden. Bei OS Type kann der Typ des Gast-Betriebssystem angegeben werden. Drücken von Next > führt einen Schritt weiter.
Speicher-Einstellungen
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Nun muss der Speicher-Bedarf der virtuellen Maschine angegeben werden. Es ist möglich den vorgeschlagenen Wert zu übernehmen, aber besser passt man ihn den Vorgaben des Host-Systems an. Durch Drücken von Next > gelangt man weiter.
Virtuelle Harddisk
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Die Auwahl besteht aus zwei Möglichkeiten. Man kann mit New... eine neue virtuelle Harddisk anlegen oder mit Existing... eine bestehende Image-Datei auswählen. Wird New... gedrückt, erscheint ein weiterer Assistent.
Der VirtualBox-Harddisk-Assistent
Start des Assistent
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Allgemeine Einleitung. Durch Drücken von Next > gelangt man weiter.
Auswahl des Types
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Eine Option ist Dynamically expanding image und die andere Fixed-size image. Bei der fixen Grösse nimt das Image-File die gesamte Grösse ein, während beim dynamischen nicht von Anfang an der gesamte Platz reserviert wird. Drücken von Next > führt weiter.
Speicherort und Grösse
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Unter Image File Name kann der Name und der Speicherort des Image-File angegeben werden. Bei Image Size' muss die Grösse der virtuellen Festplatte angegeben werden. Es empfiehlt sich diesen nicht zu knapp zu bemessen. Durch Drücken von Next > gelangt man weiter.
Zusammenfassung
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Nun erscheint eine kleine Zusammenfassung der Daten. Mit dem Drücken von Finish wird der Assisten geschlossen.
Der VirtualBox-Assistent
Virtuelle Harddisk Drücken von Next > führt weiter.
Zusammenfassung
Screenshot des VirtualBox-Assistent
Screenshot des VirtualBox-Assistent
Nun erscheint eine Zusammenfassung der Daten. Mit dem Drücken von Finish wird der Assisten geschlossen.

Weitere Informationen zum Handling der vdi-Dateien, können in diesem Artikel gefunden werden.

Das VirtualBox-Fenster zeigt nun auf der linken Seite die zur Verfügung stehenden Systeme an. Auf der rechten Seite unter Details lassen sich weitere Einstellungen vornehmen.

Screenshot des VirtualBox-GUI

Vereinfachte Oberfläche

Wenn nur die virtuelle Maschine gestartet werden soll, ohne VirtualBox-Gui kann VBoxSDL verwendet werden. Als Parameter muss der Name oder die UUID der virtuelle Maschine angegeben werden.

[root]# VBoxSDL -vm 7f58d9d6-b7e3-4e8a-a740-7a56698b75fa

Konfigurations-File

Für jedes Gast-System wird ein xml-Konfig-File angelegt, welches die relevanten Informationen enthält. Beispielsweise eine File für ein Fedora Core 6-Gast.

USB

USB-Speicher-Sticks lassen sich auch unter VirtualBox verwenden, da USB "durchgeschleift" wird. Die USB-Hardware einstecken und dann mit VBoxManage schauen, ob das Gerät erkannt wird.

[root]# VBoxManage list usbhost

Die Ausgabe sieht ungefähr so aus.

VirtualBox Command Line Management Interface Version 1.3.8
(C) 2005-2007 InnoTek Systemberatung GmbH
All rights reserved.

Host USB Devices:

UUID:               45eda379-d497-42fb-9b7b-974d983b3e87
VendorId:           0x046d (046D)
ProductId:          0xc016 (C016)
Revision:           3.64 (0364)
Manufacturer:       Logitech
Product:            Optical USB Mouse
Address:            /proc/bus/usb/004/002
Current State:      Busy

UUID:               cbc80258-16e6-4398-b7ee-48ac97df0f56
VendorId:           0x413c (413C)
ProductId:          0x8103 (8103)
Revision:           22.87 (2287)
Address:            /proc/bus/usb/002/003
Current State:      Busy

UUID:               54c7265c-474f-4caa-80d5-14c1ab65c6f6
VendorId:           0x0ea0 '''(0EA0)'''
ProductId:          0x2168 '''(2168)'''
Revision:           2.0 (0200)
Manufacturer:       USB
Product:            Flash Disk
SerialNumber:       1EF4063C3784CC7D
Address:            /proc/bus/usb/005/004
Current State:      Busy

Der Bereich um "Flash Disk" ist interessant. Nun muss die VendorId und die ProductId (die Wert in Klammer sind besonders interssant) bei den Einstellungen der virtuellen Maschine unter USB eingetragen werden.

  1. einen neuen Filter anlegen
  2. unter Name einen Namen für den Filter angeben
  3. bei Vendor ID den Wert 0EA0 aus obiger Liste eintragen
  4. bei Product ID ebenfalls den Wert 2168 aus obiger Liste eintragen
  5. mit OK die Einstellungen verlassen

Nun sollte im Gast-System der Speicher-Stick zur Verfügung stehen.

USB unter Windows

Für Windows muss man Sondermaßnahmen ergreifen, die allerdings einfach zu bewerkstelligen sind, der USB-Support ist einfach einzurichten. Die Aktivierung verhält sich folgendermaßen:

1.)

  • USB-Stick einstecken, dieser wird unter Fedora (Host) automatisch gemounted.
  • VirtualBox öffnen
  • OS, welches USB Support haben soll markieren und auf "ändern" klicken
  • Im linken Menü "USB" auswählen
  • "USB Controller aktivieren" auswählen
  • Bei "Filter für USB Geräte" auf "Filter hinzufügen" klicken (Stecker mit grünem +)

Dabei werden die angeschlossenen Geräte in einem sich dann öffnenden Kontext-Menü angezeigt, davon die betreffenden auswählen. Alle in der VirtualBox notwendigen Konfigurationen sind damit abgeschlossen.

2.) Eine Gruppe namens "usb" anlegen und die Gruppen-ID merken

3.) als root folgendes in die /etc/fstab eintragen:

none  /proc/bus/usb  usbfs  devgid=XXX,devmode=664  0 0

dabei bezeichnet XXX die Gruppen-ID der Gruppe "usb"

ab Fedora 11:

none /sys/bus/usb/drivers usbfs devgid=XXX,devmode=664 0 0


[root]# mount -a

Danach die VirtualBox neu starten und Windows hochfahren, bei nicht erfolgender Fehlermeldung sollten USB-Medien zur Verfügung stehen.

Netzwerk

Beim Netzwerk bietet VirtualBox zwei Optionen an:

  • "Host Interface" Hier wird eine Bridge zum Netzwerkadapter des Hosts erstellt und die Verbindung darüber hergestellt
  • "NAT" Der DHCP-Server von VirtualBox vergibt IP-Adresse aus dem Range 10.0.2.0/24. So ist es jedoch nicht möglich Server-Dienste auf dem Gast-System anzubieten.

Es wird die Standard-Bridging-Funktionen von Linux verwendet, um den direkten Zugriff der Gastsysteme ins Netz zugewähren. Deshalb ist es nötig, dass Lese- und Schreibzugriff auf /dev/net/tun vom Benutzer möglich sind.

Netzwerk-Bridge

Sollen über das virtuelle System auch Server-Dienste angeboten werden, muss eine Netzwerk-Bridge eingerichtet werden. Da das tunctl-Device fehlt, muss OpenVPN installiert werden, so lässt sich dann das tap-Interface erstellen. Die folgende Beschreibung installiert ein dauerhaftes Bridge-Interface für eth0. Die Einrichtung einer dynamischen Bridge ist etwas komplizierter da jedesmal root-Rechte zum Einrichten benötigt werden.

[root]# yum install openvpn bridge-utils

Den Knoten für tun erzeugen

[root]# mknod /dev/net/tun c 10 200

Jetzt das tap0-Device erzeugen

[root]# openvpn --mktun --dev tap0

Die Gruppe von /dev/net/tun anpassen

[root]# chgrp vboxusers /dev/net/tun

Ändern der Rechte des tun-Devices

[root]# chmod 666 /dev/net/tun

Um das zu automatisieren sollte man das in der rc.local machen lassen

[root]# echo chmod 666 /dev/net/tun >> /etc/rc.d/rc.local

Die Datei /etc/sysconfig/network-scripts/ifcfg-br0 anlegen und folgendes hineinschreiben:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
MTU=1492

Die Datei /etc/sysconfig/network-scripts/ifcfg-eth0 ergänzen

[root]# echo BRIDGE=br0 >> /etc/sysconfig/network-scripts/ifcfg-eth0

Anlegen einer Netzwerkschnittstelle für den jeweiligen User

[root]# VBoxAddIF vbox0 [User] br0

[User] bitte durch den entsprechenden Usernamen ersetzen

Die korrekte MTU für das Netzwerk-Interface eth0 und vbox0 kann auch wieder in der /etc/rc.d/rc.local gesetzt werden:

[root]# echo ifconfig eth0 mtu 1492 >> /etc/rc.d/rc.local
[root]# echo ifconfig vbox0 mtu 1492 >> /etc/rc.d/rc.local

(Hier die MTU 1492 für DSL)

Beispiel /etc/rc.d/rc.local nach diesen Anpassungen (incl. automatischer Neukompilierung des Kernelmoduls)

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

if [ ! -e /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
        echo ""
        echo "Compiliere Module fuer VirtualBox"
        /etc/init.d/vboxdrv setup

        echo "Starte Dienste fuer VirtualBox neu"
        /etc/init.d/vboxdrv restart
        /etc/init.d/vboxnet restart
fi

chmod 666 /dev/net/tun
ifconfig eth0 mtu 1492
ifconfig vbox0 mtu 1492


Nun den Host-PC bitte einmal durchstarten.

ifconfig sollte nun ausgeben: br0, eth0, lo, und vbox0 in etwa so:

br0       Link encap:Ethernet  Hardware Adresse 00:19:DB:CC:2B:45
          inet Adresse:192.168.0.2  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6 Adresse: fe80::219:dbff:fecc:2b45/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:3312 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2896 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:1229558 (1.1 MiB)  TX bytes:399538 (390.1 KiB)

eth0      Link encap:Ethernet  Hardware Adresse 00:19:DB:CC:2B:45
          inet6 Adresse: fe80::219:dbff:fecc:2b45/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:3312 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2896 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:1276038 (1.2 MiB)  TX bytes:399556 (390.1 KiB)
          Interrupt:18 Basisadresse:0xc000

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:75 errors:0 dropped:0 overruns:0 frame:0
          TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:7091 (6.9 KiB)  TX bytes:7091 (6.9 KiB)

vbox0     Link encap:Ethernet  Hardware Adresse 00:FF:B1:1B:11:68
          inet6 Adresse: fe80::2ff:b1ff:fe1b:1168/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:81 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:500
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


Anpassung der Firewall des Host-PCs

Firewall-Anpassung Host-PC

Abschließend in der Firewall Konfiguration noch Anwenden und Neu laden anklicken. Das ist notwendig, damit der Guest (die virtuelle Maschine) via DHCP eine Netzwerkadresse bekommt.

Ändern der Netzwerkschnittstelle der VM

Netzwerk-Hostinterface Einstellungen

Nach einem Neustart der VM sollte nun die Netzwerkkarte des Guest via DHCP eine IP-Adresse bekommen, die im gleichen IP-Segment wie der Host-PC liegt.

VirtualBox-WinXP-Hostinterface mit dhcp

Die virtuelle Maschine (Guest) kann nun wie ein realer PC im Netzwerk angesprochen werden und ggfs. Dienste und Services bereitstellen.


An der Berner Fachhochschule in Biel (Schweiz) ist eine Diplom-Arbeit ausgeschrieben, die sich mit den Netzwerk-Funktionen von VirtualBox beschäftigen soll.

Starten von Gast-Systemen

Durch die Auswahl der Gast-Systeme im VirtualBox-GUI und drücken des "Start"-Knopfes wird das System gestartet. Zum Lösen der Maus- Und Tastatur-Eingaben vom Gast-System muss die Taste, welche im unteren rechten Bereich des VirtualBox-Fenster angegeben ist, gedrückt werden.

Guest Additions

Diese Erweiterung ermöglicht die Verwendung einer höheren Auflösung, eine bessere Maus-Integration und Zeit-Synchronisation. Ebenso bestehet die Möglichkeit Verzeichnis-Freigaben und ein automatisches Windows Logon einzurichten.

Laden der Guest Additions

  1. Wähle "Mount CD/DVD-ROM" aus dem "Devices" Menü und dann "CD/DVD-ROM image". So wird der Virtual Disk Manager gestartet.
  2. Im Virtual Disk Manager den "Add"-Knopf drücken und nun muss VBoxGuestAdditions.iso geladen werden. Es befindet sich im Installations-Verzeichnis, normalerweise unter /opt/VirtualBox-xxx.
  3. Zurück im Virtual Disk Manager muss das ISO-File gewählt werden und der "Select"-Knopf gedrückt werden. Das ISO-File wird nun gemountet und ist CD-ROM im Gast-System verfügbar.

Installation (der Guest Additions) unter Windows als Gast-System

Wenn nun auf das CD-ROM-Laufwerk gewechselt wird, kann das VBoxGuestAdditions.exe ausführen. Nach einem Neustart kann die Auflösung der virtuellen Maschine analog einer Standard-Windows-Installation geändert werden.

Installation (der Guest Additions) unter Linux als Gast-System

Wenn nun auf das CD-ROM-Laufwerk gewechselt wird, kann das VBoxLinuxAdditions.run ausführen. Auf dem Gast-System muss jedoch ein gcc-Kompiler und die kernel-devel Pakete vorhanden sein. Auch hier kann das Problem mit der falschen Kernel-Architektur auftreten (Lösung siehe unter Installation).

[root]# yum install gcc gcc-c++ kernel-devel

Anlegen eines Verzeichnis zum Mounten

[root]# mkdir /media/cdrom

Mounten des CD-ROM-Laufwerkes

[root]# mount /dev/cdrom /media/cdrom

Wechslen des Verzeichnises

[root]# cd /media/cdrom

Ausführen der Skripts

[root]# sh ./VBoxLinuxAdditions.run

Sind alle Anforderungen erfüllt, gibt das Skript über den Ablauf die Informationen bekannt.

Verifying archive integrity... All good
Uncompressing VirtualBox 1.3.8 Additions for Linux installation...............
VirtualBox 1.3.8 Guest Additions installation
Building the VirtualBox Guest Additions kernel module...
Building the shared folder support kernel module...
Installing the VirtualBox Guest Additions...

Successfully installed the VirtualBox Guest Additions.
You must restart your guest system in order to complete the installtion.

Nun muss das Gast-System neugestartet werden. Während des Startes sollten die beiden Module vboxadd und vboxvfs geladen.

Durch lsmod | grep vbox kann überprüft werden, ob die Module geladen wurden.

Snapshot

VirtualBox bietet mit einer Snapshot-Funktion die Möglickeit, einen aktuellen Installationsstand zu sichern. Zu einem späteren Zeitpunkt kann zu den früheren Systemzuständen zurückgekehrt und weitergearbeitet werden.

Verzeichnis-Freigaben

Eine Einrichtung über die grafische Oberfläche ist momentan nicht möglich. So muss dies per Konsole mit VBoxManage geschehen. Die virtuelle Maschine darf zu diesem Zeitpunkt nicht laufen.

[root]# VBoxManage sharedfolder add [Name der VM] -name [Name der Freigabe] -hostpath /tmp

Unter hostpath wird das Verzeichnis auf den Host-System angegeben, welches dem Gast-System zur Verfügung gestellt wird.

Ist die Erstellung erfolgreich erscheint folgende Meldung:

VirtualBox Command Line Management Interface Version 1.3.8
(C) 2005-2007 InnoTek Systemberatung GmbH
All rights reserved.

Entfernen der Verzeichnis-Freigabe

[root]# VBoxManage sharedfolder remove [Name der VM] -name [Name der Freigabe]

Linux

Unter Linux muss das freigegebene Verzeichnis nun gemountet werden.

mount -t vboxsf [Name der VM] /media/exchange

Das Verzeichnis, in welches gemountet wird, muss bereits bestehen.

Windows

Läuft die virtuelle Maschine mit Windows kann in der Eingabeaufforderung mit folgendem Kommando das Laufwerk eingebunden werden.

net use x: \\vboxsvr\[Name der Freigabe]

Remote Desktop Protocol

VirtualBox verwendet eine Erweiterung des Protokolls RDP mit dem Namen VRDP. Mit RDP-Clients wie 'rdesktop kann so unter Fedora problemlos auf die virtuellen Maschinen zugegriffen werden. Standardmässig ist Remote Display deaktiviert. Unter Details und dann Remote Display kann der Einstellungsbereich für Remote Display erreicht werden. Bei Enable VRDP Server muss ein Hacken gemacht werden, damit die Einstellungen vorgenommen werden können.

Screenshot der Remote Display-Einstellungen

  • Server Port Port-Nummer nach eigenen Geschmack, jedoch muss die Firewall den gewählten Port "durchlassen"
  • Authentication Method
  • Null keine Authentifikation
  • External eine Authentifikation über PAM hinausläuft, resp. eine Anmeldung am Host
  • Guest dies erfordert eine Anmeldung am Gastsystem
  • Authentication Timeout Wartezeit bis zum Beenden der Anmeldung

Es lassen sich auch virtuelle Maschinen auf Systemen ohne Eingabe- und Ausgabe-Möglickeiten starten. Dazu muss die virtuelle Maschine mit

VBoxVRDP -startvm

gestartet werden.

Der Zugriff auf die virtuelle Maschine kann mit rdesktop geschehen. Es muss die IP-Adresse und die Port-Nummer angegeben werden.

rdesktop 10.0.2.15:1111

Das Anlegen einer virtuellen Maschine auf einem System ohne Eingabe-Möglichkeit mit Hilfe von RDP, wie einem Root-Server wird in einem separaten Artikel beschreiben.


Mögliche Probleme

Allgemeine Lösungen

Überprüfungen, ob das Modul geladen wurden

lsmod | grep vboxdrv

Falls es nicht der Fall ist, wird mit folgendem Kommando das Modul geladen.

[root]# modprobe vboxdrv

Permission denied

Die Probleme mit den Zuriffsrechten lassen sich durch das Hinzufügen des gewünschten Benutzer als Mitglied zur Gruppe vboxusers lösen, falls es bei der Installation vergessen wurde.

[root]# usermod --append --groups vboxusers [Benutzername]

Diese Problematik entsteht, wenn die Rechte des Verzeichnisses /opt/VirtualBox-1.3.8 falsch gesetzt sind, respektive root oder der ausführende Benutzer keine Rechte besitzen.

/opt/VirtualBox-1.3.8/VirtualBox: error while loading shared libraries: /opt/VirtualBox-1.3.8/VBoxVMM.so: cannot restore segment prot after reloc: Permission denied

Die SELinux-Berechtigungen anpassen, bringt die Lösung, wenn die Verzeichnis-Rechte stimmen. Siehe hier

Dasselbe Verfahren gilt ebenfalls für die Meldung VERR_NO_MEMORY beim Start einer virtuellen Maschine.


Kernel-Update

Wenn der Kernel auf den neusten Stand gebracht wurde, wird das vboxdrv-Modul nicht mehr geladen, da es mit der neuen Kernel-Version nicht übereinstimmt. VirtualBox muss nicht neuinstalliert werden, es reicht, wenn das Modul für den neuen Kernel neu gebaut wird.

[root]# /etc/init.d/vboxdrv setup


Beenden von VirtualBox

Wurden die Zugriffsrechte angepasst oder soll VirtualBox beendet werden, kann dies mit folgendem Befehl geschehen.

[root]# VirtualBox shutdown


Deinstallieren von VirtualBox

Zum Entfernen von VirtualBox kann folgender Befehl ausgeführt werden und die Installation wird gelöscht.

[root]# ./VirtualBox_1.3.2_Linux_x86.run uninstall

Tipps & Tricks

Kernelmodul beim Kernelupdate automatisch neu bauen

Es gibt zwar bestimmt schönere Möglichkeiten, dieses zu bewerkstelligen, aber eine einfache Quick&Dirty-Lösung, um die für VirtualBox nötigen Kernelmodule nach einem Kernelupdate automatisch neu bauen zu lassen, ist, folgendes in die /etc/rc.local einzutragen:

if [ ! -e /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
        echo ""
        echo "Compiliere Module fuer VirtualBox"
        /etc/init.d/vboxdrv setup

        echo "Starte Dienste fuer VirtualBox neu"
        /etc/init.d/vboxdrv restart
        /etc/init.d/vboxnet restart
fi

Dieses prüft beim Systemstart, ob das Modul schon vorhanden ist. Falls nicht, erstellt es dieses und startet die Dienste für VirtualBox einmal neu.

Das Ganze funktioniert auch für die Linux-Gäste. Als Vorarbeit muss dafür innerhalb des gestarteten Gastes nur die Datei VBoxLinuxAdditions.run aus den Gasterweiterungen in das Verzeichnis {Dateiname|/opt/} kopiert werden und danch folgendes in die {Dateiname|/etc/rc.local} eingetragen werden:

if [ ! -e /lib/modules/`uname -r`/misc/vboxvfs.ko ];then
       echo ""
       echo "Compiliere Module fuer VirtualBox"
       sh /opt/VBoxLinuxAdditions.run

       echo "Starte Dienste fuer VirtualBox neu"
       /etc/init.d/vboxadd start
       /etc/init.d/vboxadd-timesync start
       /etc/init.d/vboxvfs start

       echo "Mounte gemeinsame Ordner von VirtualBox"
       mount -a
fi



Siehe auch


Alternativen


Links

Persönliche Werkzeuge