VirtualBox

Aus m-wiki
Zur Navigation springen Zur Suche springen

Einführung

Allgemein

Vieles aus folgendem Buch übernommen:

Schlagwort Info
Titel VirtualBox Installation, Anwendung, Praxis
Author Dirk Becker
Verlag Galileo Computing
ISBN 978-3-8362-1778-1
Webseite zum Buch http://www.galileocomputing.de/

Läuft unter Windows, Linux, MacOS X und OpenSolaris. Ist Freeware. Das "Virtual Box Extension Pack" ist allerdings lizenzpflichtig und darf von Firmen nur getestet werden. Danach muss laut Lizenz ein Support-Vertrag ausgehandelt werden.

Begriffserklärungen

Begriff Erklärung
Intel VT Virtualisierungstechnologie im Prozessor, welche sicherstellt, dass etwa Arbeitsspeicher nicht überschrieben wird und betsimmte I/O sauber durchgeschlauft wird
AMD-V Wie Intel VT
Hypervisor Programm zur Virtualisierung (Virtual Machine Monitor), welches auf obige Instruktionen angewiesen ist wie XEN, VMWare ESX oder halt VirtualBox
SMP Symmetrisches Multiprozessorsystem -> braucht Intel VT oder AMD-V, um als Host zu funktionieren
Emulator Täuscht die Hard- oder Software möglichst echt vor
Virtualisierung Emuliert nur gewisse Teile des Systems. So können daher nur Betriebssysteme emuliert werden, welche für den gleichen Prozessortyp geschrieben wurden.

Installation

Läuft normal. Möchte man allerdings nur für den aktuellen Benutzer installieren, gilt folgendes:

  • msi entpacken: ...\\virtualbox.exe -extract -> extrahiert ins Temp-Verzeichnis -> wird am Schluss angezeigt
  • msi-Paket zur entsprechenden Hardware wählen (x86 oder x64)
  • msi installieren für den aktuellen Benutzer: msiexec /i ...\\virtualbox.msi ALLUSERS=2 -> Wenn Pfad mit Leerzeichen, dann mit "" umschliessen

Globale Einstellungen

Eingabe

Host-Taste ist meist Ctrl (rechts). Wichtige Kombinationen damit: Host alleine -> Maus und Tastatur "befreien"

  • F: Wechsel Vollbild / Fenster
  • H: ACPI Power Button
  • N: Sicherungspunkt (Snapshot) im Hintergrund erstellen
  • P: Pause/Weiter (Machine anhalten / Weiter)
  • Q: Power Off
  • R: Reset
  • S: Ruhezustand (Zustand speichern und Maschine beenden)
  • Entf: Sendet Ctrl-Alt-Entf
  • F1-F12: Ctrl-Alt-Fx

3D-Beschleunigung

OpenGL 2.0 steht für alle zur Verfügung. Direct3D 8 und 9 nur für Windows. Fürs nutzen braucht man natürlich ein Hostsystem mit einer entsprechenden Karte und dazu müssen auch die Gasterweiterungen installiert werden.

VBoxManage modivyvm "Name" --accelerate3d on

Damit dies funktioniert, braucht es entsprechend Grafikspeicher, der zur Verfügung steht -> Kontrolle in den Einstellungen.

2D-Beschleunigung

Vor allem für die Video Wiedergabe notwendig, damit diese direkt durchgereicht wird. Ist aber noch in Entwicklung und erst ab Win XP und neuer verfügbar.
VBoxManage modivyvm "Name" --accelerate2dvideo on

Netzwerk

Man kann pro Maschine bis 4 Netzwerkadapter (mit VBoxManage sogar 8) einrichten. Welchen man verwendet hängt vom Gast ab. Je nachdem kennt dieser halt nur ältere Adapter. Das Paravirtualisierte Netzwerk braucht noch Zusatztreiber im Gast (http://www.linux-kvm.com).

  • Meist genügt als Anschlussart NAT. Hier fingiert Virtualbox als DHCP-Server (vboxmanage dhcpserver) und Gateway. Nach aussen verwendet er die IP des Hosts. Von aussen kommt man dadurch aber nicht direkt ans Gastsystem heran, da die entsprechende Adresse nicht geroutet wird. Das bedeutet, dass man zwar auf andere Geräte kommt, doch diese nicht mit dem Gast kommunizieren können. Die virtuelle Maschine kann also nicht als Server arbeiten.
  • Wählt man stattdessen Netzwerbrücke (bridged), so muss der physikalische Adapter des Hosts zugewiesen werden. Danach setzt man eine eigene IP. Nun verhält sich der Gast so, als hätte er eine eigene Netzwerkschnittstelle (wichtig für Dienste-Server).
  • Wählt man internes Netzwerk, so muss man einen Namen dazu vergeben. Alle Gäste auf dem Rechner können dann untereinender kommunizieren, doch nicht nach aussen und auch von aussen erhält man keinen Zugriff auf das Netzwerk.
  • Das Host-only Netzwerk verhält sich ähnlich wie das interne, doch hier kann man auch mit dem Host kommunizieren. Man braucht dafür einen Bereich für die virtuellen Maschinen, den virtuellen DHCP-Server und die Adresse der virtuellen Netzwerkkarte.

Zusatzpakete

Hier kann man Zusatzpakete wie das "Oracle VM VirtualBox Extension Pack" installieren

Gasterweiterungen

Werden nicht für alle Gäste zur Verfügung gestellt. Dienen neben bessernen Treibern, dem Datenaustausch über gemeinsame Ordner oder die Zwischenablage. Kann meist als iso eingebunden und danach ausgeführt werden. Entweder die exe oder unter Unix: sudo ./VBoxLinuxAdditions.run Bei Problemen steht alles unter /var/log/vboxadd-install.log

Snapshots

Werden im Unterverzeichnis Snapshots gespeichert.

Audio

Es braucht folgende Angaben:

  • Audio aktivieren
  • Welcher Audiotreiber des Hosts verwendet werden soll (Null (pseudo), dsound(DirectSound, pulse, alsa)
  • Welchen Audio-Controller soll das System emulieren (Intel-HD, ICH AC97, SoundBlaster16)

Audiotreiber

Mit dem Null-Treiber erfolgt keine Ausgabe, man kann damit aber Programme laufen lassen, die einen Soundtreiber voraussetzen:
VBoxManage modivyvm "Name" --audio null

Windows:
VBoxManage modivyvm "Name" --audio dsound

Linux
VBoxManage modivyvm "Name" --audio pulse|alsa

Audio-Controller

VBoxManage modivyvm "Name" --audiocontroller hda|ac97|sb16

Gemeinsame Ordner (Netzlaufwerk)

VirtualBox mappt für den Dateiaustausch mit dem Host einen Ordner:

  • Im Konfigurationsmenü der VM auf den Punkt "gemeinsame Ordner" gehen
  • Beim Ordnerpfad wird eingegeben, wo die Daten auf dem Hostsystem abgelegt werden, damit sie beim Gast sichtbar sind (z.B.: c:/transfer | /media/vm)
  • Nun den Ordner, der beim Gastsystem gemappt werden soll
  • Setzt man "nur lesbar", dann kann das Gastsystem nichts schreiben
  • Beim "automatisch einbinden" wird ein Netzlaufwerk eingerichtet

VBoxManage sharedfolder add "Name" --name transfer\\ --hostpath /media/transfer|c:\\transfer

Unter Linux wird das Laufwerk als eigenes Dateisystem gemounted: mount -F vboxfs [-o OPTIONS] sharename mountpoint

Will man es ab Start integriert haben, so fügt man folgende Zeile in die /etc/fstab ein: sharename mountpoint vboxsf defaults 0 0

Medienmanager (virtuelle Medien)

Man kann Festplatten, CD/DVD-Abbilder und Diskettenimages verwalten. Gewisse Funktionen sind aber nur über die Konsole erreichbar.

Festplatten

Hier kann man Images entfernen oder freigeben. Neue erstellen oder vorhandene registrieren geht nur über die Konsole.

Konfigurationsdateien

Globale Konfiguration

Globale Einstellungen werden im Benutzerverzeichnis unter .VirtualBox abgelegt. Die Datei heisst VirtualBox.xml. Es befinden sich neben den globalen Einstellungen auch alle registrierten VMs und Festplatten und CD-Images darin. Die Datei sollte vor einer Neuinstallation gesichert werden. Bei schwerwiegenden Problemen kann man diese Datei auch umbenennen. Dabei gehen aber alle registrierungen verloren und man muss diese wieder integrieren.

Konfigurationsdatei einer VM

Ist ähnlich aufgebaut wie die globale Konfigurationsdatei. Endet auf .vbox. Kann nicht auf eine andere Platform übertragen werden, da spezifisch. Die Datei kann aber angepasst werden, wenn man die Kenntnisse dazu hat (Pfade usw.). Bei Problemen wie Abstürzen kann man durch anpassen der Datei evtl. etwas verbessern, falls man in den Logdateien Hinweise dazu findet.

Logdateien

Im Verzeichnis der VM wird das Unterverzeichnis Logs erstellt. Darin wird alles relevante in Vbox.log protokolliert.

UUID

Jede Festplatte usw. besitzt eine ziemlich eindeutige UUID. VMs werden entweder mit ihrem Namen oder dieser ID angesprochen.

Kommandozeilentools

Um die Tools suaber nutzen zu können, muss der Pfad in der Path-Variable integriert werden, da man sonst immer ins bin Verzeichnis der Virtualbox wechseln muss. Systemsteuerung -> System und Sicherheit -> System -> Erweiterte Systemeinstellungen -> Erweitert -> Umgebungsvariablen Den Pfad mit einem Strichpunkt und anschliessend dem Virtualbox-Pfad erweitern. Dann die Konsole neu öffnen. Unter Linux sollte die Datei automatisch erreichbar sein, wenn die Tools korrekt unter /usr/bin abgelegt wurden.

VBoxManage

Damit kann man neue Maschinen erstellen oder alle Optionen bearbeiten.

Befehl Bedeutung Bemerkungen
VBoxManage BEFEHL PARAMETER Führt den Befehl mit den angegebenen Parametern aus
VBoxManage list vms Listet alle VMs auf Es gibt noch folgende wichtige Argumente für list: runningvms, hdds, dvds, ostypes (unterstützte Gastsysteme), systemproperties
VBoxManage showvminfo UUID oder Name Listet Info zur VM auf
VBoxManage storageattach LiveCD --storagectl "IDE-Controller" port 1 --device 0 --type dvddrive --medium host:/dev/sr0 CD im Laufwerk verfügbar machen. bei Windows host:x: / port 0 ist primärer -, 1 ist sekundärer Anschluss / device 0 ist Master, 1 ist Slave Kennt das System die UUID schon, kann man ein Gerät/ISO-Abbild auch darüber einbinden
VBoxManage storageattach "CD Image" --storagectl "IDE-Controller" port 1 --device 0 --type dvddrive --medium "/media/cd/image.iso" Beschreibung siehe oben
VBoxManage startvm NAME startet die entsprechende VM
poweroff | savestate Maschine herunterfahren bei acpi wird ein Signal gesendet, poweroff zieht den Stecker und savestate macht Ruhemodus
VBoxManage modifyvm NAME --vrde on --vrdeport 3400 RDP in der VM einschalten --vrde off beendet den RDP
VBoxManage internalcommands sethduuid IMAGE.vhd Setzt für diese vhd eine neue UUID. Wichtig beim kopieren von VMs, sonst kommt die Meldung, dass die UUID schon verwendet wird.
VBoxManage modifyvm "Name" --nic1 bridged --bridgeadapter1 eth0 oder "Ethernetadapter der AMC-PCNET-Familie" Setzt das Netzwerk auf bridged. eth0,1,2 für Linux oder der Name bei Windows Unbedingt das Interface korrekt schreiben, da es auch falsche Namen ohne zu murren akzeptiert und es dann einfach nicht funktioniert. Danach muss bei der VM eine eigene IP gesetzt werden oder er bekommt vom DHCP-Server eine eigene IP. So kann die VM auch von aussen erreicht werden.
VBoxManage snapshot "Name" take "Sicherungspunkt 1" --desc "Beschreibung" Sicherungspunkt erstellen Beschreibung nicht vergessen, da man sonst im nachhinein nicht mehr weiss, wieso man den SP gesetzt hat.
VBoxManage snapshot "Name" delete "Sicherungspunkt 1" Das System entfernt den SP Nachher arbeitet das System dort weiter, wo man jetzt ist. Es gibt keine Möglichkeit mehr, zurückzukehren.
VBoxManage snapshot "Name" restore "Sicherungspunkt 1" Das System kehrt zum SP zurück Alle Änderungen bis zum SP werden verworfen und man beginnt wieder beim SP.

VBoxSDL

Startet eine VM von der Kommandozeile. Diese hat entsprechend auch keine Menü- und Statusleiste, was auch eine Manipulation verhindert. Dazu kann man temporäre Argumente als Parameter mitgeben (--memory 2GB -> mehr Speicher, --cdrom DATEI, --fullscreen, --termacpi -> herunterfahren, wenn Fenster geschlossen wird). vboxsdl --startvm VMName

VBoxHeadless

Öffnet eine VM im Hintergrund, welche nur über RDP erreicht werden kann.
vboxheadless --startvm VMName
Damit der RDP-Port erreichbar ist, muss man bei mehreren Maschinen den Port entsprechend mitgeben:
vboxheadless --startvm VMName --vrde on --vrdeproperty TCP/Ports=3400
-> Fenster nicht schliessen, da sonst die Maschine darin abgewürgt wird. Stattdessen im Gastsystem einloggen und beenden oder mittels VBoxManage herunterfahren:
VBoxManage controlvm VMName acpipowerbutton

Session aufzeichnen

In diesem Modus kann man auch eine Aufzeichnung im Hintergrund starten. Etwa wenn man dies an einer Schuliung oder so zeigen will. Allerdings muss man massig Platz einberechnen:
vboxheadless --startvm VMName --capture --width 800 --height 600 --bitrate 500000 --filename d:\\aufnahmen\\test.mpeg
Je nach Detailtreue muss man die Fenstergrösse entsprechend anpassen. DIe Bitrate muss zwichen 300k und 1M liegen. Dazu müssen auf dem PC die ffmpeg-Tools installiert sein.

Remotezugriff

Kann in der Konfiguration der VM eingerichtet werden. Dort unter Anzeige die Fernsteuerung aktivieren. Beim Port kann man 3389 als Standard lassen. Bei mehreren VM muss halt entsprechend angepasst werden. Je nachdem muss für die Firewall noch eine Ausnahme definiert werden. Der Zugriff erfolgt über den Rechnernamen/IP des Hosts gefolgt vom Port nach einem Doppelpunkt (rechnerx:3400). Local gehts auch mit localhost.

rdesktop-vrdp (Linux)

Neben tsclient und rdesktop gibt es mit rdesktop-vrdp ein eigenes Programm für VirtualBox. Kann RDP zu einer VM und dabei auch USB-Geräte weiterreichen. rdesktop-vrdp ZIELRECHNER:PORT -> Rechner kann der Name oder auch die IP sein. Folgende Parameter sidn nützlich: -k Tastaturlayout (de, sg, usw.) -N Numlock ein -u Username -p Passwort -r sound:local -> Audio an VM weiterleiten

Image kopieren

Wenn man eine Maschine nicht klont sondern kopiert, so muss man anschliessend folgendes durchführen, damit die Verarbeitung trotzdem sauber funktioniert:

  • UUID der Festplatte neu generieren mit vboxmanage
  • UUID der Maschine anpassen
  • Evtl. weitere Verweise im .vbox an die neuen UUID anpassen

Sonst CloneCDI verwenden oder im VirtualBox Manager "Clone Image" verwenden.