VirtualBox: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
(45 dazwischenliegende Versionen von 19 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Bild:Sun_VirtualBox_2.2.2.png|thumb|280px|Sun VirtualBox 2.2.2]]
{{righttoc}}
== Was ist Virtualbox? ==
Virtualbox ist eine von der Firma Innotek entwickelte Software zur Virtualisierung. Mit Virtualbox ist es möglich weitere Betriebssysteme (Gast) wie ein normales Programm auf seinem Rechner laufen zu lassen. Virtualbox steht in 2 Versionen bereit, einer Open-Source-Edition (OSE) und einer Closed-Source-Edition, die unter bestimmten Bedingungen kostenlos verwendet werden darf.


Einige Features fehlen der OSE Version:
VirtualBox ist eine von der Firma Innotek entwickelte Software zur Virtualisierung. Die Firma wurde 2008 von SUN übernommen, welche wiederum von Oracle gekauft wurde.
*Remote Display Protocol (RDP) Server
*USB Unterstützung
*USB über RDP
*ISCSI Unterstützung


== Installation ==
{{wikipedia|VirtualBox}} Oracle VM VirtualBox ist eine Virtualisierungssoftware des US-amerikanischen Unternehmens Oracle. Sie kann auf den Betriebssystemen FreeBSD[3], Linux, OS/2, Mac OS X, Solaris und Windows als Wirtssystem auf 32-Bit- oder 64-Bit-x86-Systemen eingesetzt werden. Als Gastsysteme werden eine Vielzahl an x86-Betriebssystemen unterstützt. Diese stehen bei der Einrichtung einer neuen virtuellen Maschine zur Auswahl.


Hier wird erklärt wie du Virtualbox installierst. Es stehen zwei Möglichkeiten zur Auswahl, die Open Source Edition oder die Closed Source Edition.
VirtualBox 5.0 (major update)
VirtualBox 4.3 (security fixes and important fixes)
VirtualBox 4.2 (security fixes and important fixes)
VirtualBox 4.1 (security fixes and very important fixes)
VirtualBox 4.0 (security fixes only)
VirtualBox 3.2 (security fixes only)
VirtualBox 3.1 - 1.6 (legacy, no longer supported)


=== Open Source Edition ===
{{installation
Die OSE Version befindet sich im Community Zweig der Repos.
|name=VirtualBox
|repo=community
|paket=virtualbox
|zusatz=virtualbox-host-modules-arch virtualbox-guest-iso
|zusatzinfo=Kernelmodule für den Host und Zusatzprogramme als ISO für den Gast}}


Dieser Teil:
=== Vorbereitung ===
[community]
Nach der Installation muss der Benutzer mit dem VirtualBox verwendet werden soll, der Gruppe {{ic|vboxusers}} hinzugefügt werden.
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/community
darf also nicht auskommentiert sein!


Nun wird Virtualbox einfach über pacman (als root) installiert
pacman -Sy virtualbox
(Die virtualbox-modules werden automatisch mit installiert)
Nun fügst du deinen Benutzer der Gruppe vboxusers hinzu. Einfach via
  gpasswd -a USERNAME vboxusers
  gpasswd -a USERNAME vboxusers


Nun noch die Module "vboxdrv" in die [[rc.conf]] unter MODULES eintragen, sodass diese bei einem Systemstart automatisch geladen werden.
==== Notwendiges Modul vboxdrv ====
Um nicht neustarten zu müssen, können die Module zur sofortigen Verwendung händisch geladen werden. Dies geschieht mit
Das Modul {{ic|vboxdrv}} muss manuell geladen werden. Soll es bei jedem Systemstart automatisch geladen werden muss es in eine Datei in {{ic|/etc/modules-load.d/}} eingetragen werden. Siehe [[Kernelmodule#Module_beim_Systemstart_automatisch_laden|Kernelmodule]]
modprobe vboxdrv
 
Die Befehle starten alle mit einem großem V auch wenn euch die Installation etwas anderes sagt.
 
=== Closed Source Edition ===
Zur Closed Source Edition befindet sich ein [http://aur.archlinux.org/packages.php?do_Details=1&ID=9753&O=0&L=0&C=0&K=VirtualBox&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd  PKGBUILD] im [[AUR]].
Einfach downloaden, mit makepkg das Paket erstellen und (als root) mit
pacman -U NAME_DES_PAKETS.pkg.tar.gz
installieren.


Nun musst du dich noch in die Gruppe vboxusers hinzufügen. Dies geschieht mit  
===== Kernel Update =====
gpasswd -a USERNAME vboxusers
Bei der Version aus dem [community] Repo muss, bei Verwendung des Arch-Standard- oder LTS-Kernels, nichts weiter beachtet werden. Die nötigen Module werden als Abhängigkeiten mit aktualisiert.


Nun noch die Module "vboxdrv" in die rc.conf unter MODULES eintragen, sodass diese bei einem Systemstart automatisch geladen werden.
Bei der {{AUR|virtualbox-bin|binären Version}} aus dem [[AUR]] muss bei einem Kernelupdate das Modul neu gebaut werden. Das erledigt der dkms-Service, der als Abhängigkeit mit installiert wird. Auch die nötigen Kernel Quelldateien (linux-headers) werden als Abhängigkeit mit installiert.
Um nicht neustarten zu müssen, können die Module zur sofortigen Verwendung händisch geladen werden. Dies geschieht mit
modprobe vboxdrv


'''WICHTIG:'''
  systemctl enable dkms
Nach einem Kernelupdate oder Einfügen eines eigenen Kernels müssen die Kernelmodule von Virtualbox neu erstellt werden. Das machst du einfach mit
  vbox_build_module


== Konfiguration ==
== Konfiguration ==
Hier werden verschiedene Konfigurationsmöglichkeiten für den Wirt und Gast beschrieben
Hier werden verschiedene Konfigurationsmöglichkeiten für Host und Guest beschrieben.


=== Netzwerk über HostInterface (dynamisch) ===
=== Netzwerk über HostInterface (dynamisch) ===
Diese Konfiguration macht das Gastsystem zu einem vollwertigen Client im lokalen Netzwerk, d.h. er bekommt eine IP-Adresse die im Gegensatz zu NAT auch von anderen Systemen erreichbar ist. Dies erfolgt über virtuelle Netzinterfaces (tun/tap), die mit dem Wirt zu einer Bridge zusammengeschlossen werden.
Diese Konfiguration macht das Gast-System zu einem vollwertigen Client im lokalen Netzwerk, das heißt dieser bekommt eine IP-Adresse die im Gegensatz zu NAT auch von anderen Systemen erreichbar ist. Dazu müssen die Kernelmodule <code>vboxnetflt</code> und <code>vboxnetadp</code> geladen werden. Unter den Client-Einstellungen (Guest) wählt man dann „Netzwerkbrücke“ aus. VirtualBox wird automatisch seitens Host-System über DHCP eine IP-Adresse zugewiesen.


Dafür sind dauerhafte Änderungen an der Netzwerk-Konfiguration des Wirts nötig, das vom Gast benötigte virtuelle Interface wird beim Start des Gastsystems erzeugt und in die Bridge aufgenommen.
Zum manuellen Laden der Module:


Auf dem Wirt sind folgende Pakete zu installieren:
modprobe vboxnetflt
  pacman -S bridge-utils uml_utilities sudo
modprobe vboxnetadp


Jetzt muss die /etc/rc.conf des Wirtes angepasst werden um die Bridge einzurichten. Das "normale" Netzwerkdevice (ich gehe hier von eth0 aus) wird dadurch direkt nach dem Start als alleiniges Mitglied in die Bridge(br0) aufgenommen. Jedweder Netzverkehr wird also nun über br0 statt bisher eth0 transferiert.
ausführen.
  # /etc/rc.conf entsprechend an diesen Stellen ändern bzw. einfügen
  #
  MODULES=(... tun ...)
  #
  # NETWORKING
  BRIDGE_INTERFACES=(br0)
  bridge_br0=(eth0)
  # statische IP an eigenes Netz anpassen!
  br0="br0 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255"
  # Oder bei Verwendung von DHCP
  # br0="dhcp"
  eth0="eth0 0.0.0.0 promisc"
  INTERFACES=(br0 eth0)
Nach einem Neustart sollte nun das Netzwerk des Wirtes funktionieren wie bisher, als konfiguriertes Device wird nun halt br0 statt bisher eth0 benutzt (ifconfig, route). Die Bridge arbeitet auf der MAC-Adressebene, d.h. Pakete werden anhand der Ziel/Quell-MAC-Adresse von ihr an die in der Bridge aufgenommenen "realen" Interfaces verteilt. Momentan ist darin nur eth0, später durch die VirtualBox-Gäste auch noch deren Devices(tap0 - tapN)


Jetzt muss am Wirt noch mittels [[sudo]] erlaubt werden, dass der User der VirtualBox diverse Befehle ausführen darf als wäre er root. Sudo wird konfiguriert mit:
Automatisches Laden beim Systemstart:
  visudo
*siehe: [[Kernelmodule#Module_beim_Systemstart_automatisch_laden | Kernelmodule]]
In die sudoers-Datei eintragen:
  %vboxusers        ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/bin/tunctl


Jetzt noch zwei Skripte erstellen, die später die Gast-Devices einrichten und zur Bridge hinzufügen. Diese z.B. nach /usr/local/bin/vbox_start und /usr/local/bin/vbox_stop speichern (Rechte: root.vboxusers rwxr-xr--)
== VMware-Images konvertieren ==
  #!/bin/sh
Zum Konvertieren von VMware-Images in VirtualBox-Images ist Voraussetzung, dass [[QEMU]] installiert ist, und das die VMwareTools ''nicht'' installiert sind.
  #
  # vbox_start
  IF=$(sudo tunctl -b -u $USER)
  echo $IF
  sudo ifconfig $IF up
  sudo brctl addif br0 $IF


  #!/bin/sh
Da VMware mit Images in Form von SCSI-Platten arbeitet muss für die Benutzung in VirtualBox erst mal ein IDE Treiber installiert werden. Hierzu legt man ein kleines IDE-Platten-Image für die VM an, und bindet diese ein, danach startet man die VM. Das System in der VM erkennt die Platte und installiert die nötigen Treiber.
  #
  # vbox_stop
  sudo brctl delif br0 $2
  sudo tunctl -d $2


Jetzt die Netzwerk-Konfiguration an einem Gast vornehmen.
=== Windows-2000- und Windows-2003-Server-Images ===
Nachdem Windows den IDE Treiber installiert hat, aus <code>C:\WINNT\Driver Cache\i386</code>
die <code>halacpi.dll</code> aus dem <code>drivers.cab</code> (bzw. <code>spN.cab</code> falls Servicepack N installiert ist) nach <code>C:\WINNT\system32\hal.dll</code> kopieren und die alte Datei überschreiben.


Im Abschnitt Netzwerk z.B. für Adapter0 "Angeschlossen an" umstellen auf '''Hostinterface'''.
Falls mehrere .vmdk files von einer Maschine vorhanden sind müssen diese erst in einer Datei zusammengeführt werden:
 
vmware-vdiskmanager -r source_multiples.vmdk -t 0 single_file.vmdk


Dann bei "Einstellungen für Hostinterface":
Danach kann man die .vmdk mit VirtualBox booten, wenn man die Snapshot-Funktion verwenden möchten muss man das Image nach .vdi konvertieren.
  Name des Interfaces: '''bleibt leer!'''
  Programm zum Einrichten: '''/usr/local/bin/vbox_start'''
  Programm zum Entfernen: '''/usr/local/bin/vbox_stop'''
Wenn dieses Gastsystem nun startet wird durch das Einrichte-Skript ein freies tap-Device angelegt, eingerichtet und in die Bridge aufgenommen. Ein weiterer Gast (oder ein Gast mit mehreren Netzwerk-Karten) erhält die nächst freien Nummern (tap0 bis
tapN). Beim Beenden des Gastsystems werden diese tap-Devices jeweils wieder aus der Bridge entfernt und freigegeben.


qemu-img convert single_vmware-image.vmdk raw-image.bin
VBoxManage convertdd raw-image.bin vbox-image.vdi


== VMware Images konvertieren ==
== Dynamisches VDI Image - freien Platz freigeben ==
Ein dynamisches VDI Image belegt immer soviel Platz wie gerade benötigt wird. Löscht man im Gast-System allerdings Dateien, behält das VDI Image die vorherige Größe. Es wird also nicht wieder verkleinert und belegt mehr Platz auf der Festplatte des Host-Systems als nötig. Man kann allerdings mit etwas manuellem Aufwand das VDI Image wieder verkleinern. Dazu sind zwei Schritte notwendig.
# Freien Festplattenplatz im Gastsystem mit Nullen überschreiben
# VDI Image manuell verkleinern


'''Voraussetzung:'''  
'''Beispiel:''' Host = Linux, Gast = WindowsXP


* qemu
1.<br>
* VMwareTools müssen vorher deinstalliert werden
Windows XP starten, Festplatte defragmentieren und freien Platz mit Nullen überschreiben.
*Da VMware mit SCSI platten arbeitet muss für die Benutzung in VirtualBox erst mal ein IDE Treiber installiert werden. Hierzu eine kleine IDE platte für die VM erstellen und einbinden, danach die VM starten -> Windows installiert dann den IDE Treiber.
Dazu kann man unter Windows z.B. das Programm [http://technet.microsoft.com/de-de/sysinternals/bb897443 SDelete] verwenden.
sdelete.exe -z


'''Wichtig für Windows 2000 und Windows 2003 Server''' (evtl. auch andere):
2.<br>
Windows XP runterfahren und Virtualbox beenden.
Jetzt kann man in einem Terminal das VDI Image auf die tatsächlich benötigte Größe verkleinern.
VBoxManage modifyhd -compact /Pfad/zum/VDI-Image/Image.vdi


Nachdem Windows den IDE Treiber installiert hat -> aus C:\WINNT\Driver Cache\i386
== USB-Sticks in VM einhängen ==
die halacpi.dll aus dem drivers.cab (bzw. spX.cab falls servicepack-X installiert ist)
Um USB2.0-Sticks in einer virtuellen Maschine einhängen zu können, muss in den Einstellungen der VM unter USB der entsprechende Haken bei <code>USB-2.0 Controller aktivieren</code> gesetzt sein.
nach C:\WINNT\system32\hal.dll kopieren und die alte Datei überschreiben.


* Falls mehrere .vmdk files von einer Maschine vorhanden sind müssen diese erst in einer Datei zusammengeführt werden:
Dafür muss das Paket {{AUR|virtualbox-ext-oracle}} aus dem [[AUR]] installiert sein.
 
  vmware-vdiskmanager -r source_multiples.vmdk -t 0 single_file.vmdk
 
Danach kann man die .vmdk mit VirtualBox booten, wenn man die Snapshot-Funktion verwenden möchten muss man das Image nach .vdi konvertieren.
 
  qemu-img convert single_vmware-image.vmdk raw-image.bin
  VBoxManage convertdd raw-image.bin vbox-image.vdi


== Weblinks ==
== Weblinks ==
*[http://www.virtualbox.org/ Virtualbox.org] {{sprache|en}}
*[http://www.virtualbox.org/ Virtualbox.org] {{sprache|en}}
*[http://www.virtualbox.org/wiki/VirtualBox_PUEL Bedingungen der kostenlosen Nutzung] {{sprache|en}}
*[http://www.virtualbox.org/wiki/VirtualBox_PUEL Bedingungen der kostenlosen Nutzung] {{sprache|en}}
*[http://forums.virtualbox.org/viewtopic.php?t=364&postdays=0&postorder=asc&start=17 Virtuelle Festplatte nachträglich vergrößern] {{sprache|en}}


[[Kategorie: Virtualisierung]]
[[Kategorie: Virtualisierung]]
[[cs:VirtualBox]]
[[de:VirtualBox]]
[[el:VirtualBox]]
[[en:VirtualBox]]
[[es:VirtualBox]]
[[fr:VirtualBox]]
[[hu:VirtualBox]]
[[it:VirtualBox]]
[[ja:VirtualBox]]
[[pt:VirtualBox]]
[[ru:VirtualBox]]
[[zh-CN:VirtualBox]]

Version vom 22. April 2016, 14:06 Uhr

VirtualBox ist eine von der Firma Innotek entwickelte Software zur Virtualisierung. Die Firma wurde 2008 von SUN übernommen, welche wiederum von Oracle gekauft wurde.

VirtualBox Oracle VM VirtualBox ist eine Virtualisierungssoftware des US-amerikanischen Unternehmens Oracle. Sie kann auf den Betriebssystemen FreeBSD[3], Linux, OS/2, Mac OS X, Solaris und Windows als Wirtssystem auf 32-Bit- oder 64-Bit-x86-Systemen eingesetzt werden. Als Gastsysteme werden eine Vielzahl an x86-Betriebssystemen unterstützt. Diese stehen bei der Einrichtung einer neuen virtuellen Maschine zur Auswahl.

VirtualBox 5.0 (major update)
VirtualBox 4.3 (security fixes and important fixes)
VirtualBox 4.2 (security fixes and important fixes)
VirtualBox 4.1 (security fixes and very important fixes)
VirtualBox 4.0 (security fixes only)
VirtualBox 3.2 (security fixes only)
VirtualBox 3.1 - 1.6 (legacy, no longer supported)

Installation

VirtualBox ist als virtualbox in community verfügbar, und kann von dort mittels Pacman installiert werden.

# VirtualBox an sich
pacman -S virtualbox

# Kernelmodule für den Host und Zusatzprogramme als ISO für den Gast
pacman -S virtualbox-host-modules-arch virtualbox-guest-iso

Vorbereitung

Nach der Installation muss der Benutzer mit dem VirtualBox verwendet werden soll, der Gruppe vboxusers hinzugefügt werden.

gpasswd -a USERNAME vboxusers

Notwendiges Modul vboxdrv

Das Modul vboxdrv muss manuell geladen werden. Soll es bei jedem Systemstart automatisch geladen werden muss es in eine Datei in /etc/modules-load.d/ eingetragen werden. Siehe Kernelmodule

Kernel Update

Bei der Version aus dem [community] Repo muss, bei Verwendung des Arch-Standard- oder LTS-Kernels, nichts weiter beachtet werden. Die nötigen Module werden als Abhängigkeiten mit aktualisiert.

Bei der binären VersionAUR aus dem AUR muss bei einem Kernelupdate das Modul neu gebaut werden. Das erledigt der dkms-Service, der als Abhängigkeit mit installiert wird. Auch die nötigen Kernel Quelldateien (linux-headers) werden als Abhängigkeit mit installiert.

systemctl enable dkms

Konfiguration

Hier werden verschiedene Konfigurationsmöglichkeiten für Host und Guest beschrieben.

Netzwerk über HostInterface (dynamisch)

Diese Konfiguration macht das Gast-System zu einem vollwertigen Client im lokalen Netzwerk, das heißt dieser bekommt eine IP-Adresse die im Gegensatz zu NAT auch von anderen Systemen erreichbar ist. Dazu müssen die Kernelmodule vboxnetflt und vboxnetadp geladen werden. Unter den Client-Einstellungen (Guest) wählt man dann „Netzwerkbrücke“ aus. VirtualBox wird automatisch seitens Host-System über DHCP eine IP-Adresse zugewiesen.

Zum manuellen Laden der Module:

modprobe vboxnetflt
modprobe vboxnetadp

ausführen.

Automatisches Laden beim Systemstart:

VMware-Images konvertieren

Zum Konvertieren von VMware-Images in VirtualBox-Images ist Voraussetzung, dass QEMU installiert ist, und das die VMwareTools nicht installiert sind.

Da VMware mit Images in Form von SCSI-Platten arbeitet muss für die Benutzung in VirtualBox erst mal ein IDE Treiber installiert werden. Hierzu legt man ein kleines IDE-Platten-Image für die VM an, und bindet diese ein, danach startet man die VM. Das System in der VM erkennt die Platte und installiert die nötigen Treiber.

Windows-2000- und Windows-2003-Server-Images

Nachdem Windows den IDE Treiber installiert hat, aus C:\WINNT\Driver Cache\i386 die halacpi.dll aus dem drivers.cab (bzw. spN.cab falls Servicepack N installiert ist) nach C:\WINNT\system32\hal.dll kopieren und die alte Datei überschreiben.

Falls mehrere .vmdk files von einer Maschine vorhanden sind müssen diese erst in einer Datei zusammengeführt werden:

vmware-vdiskmanager -r source_multiples.vmdk -t 0 single_file.vmdk

Danach kann man die .vmdk mit VirtualBox booten, wenn man die Snapshot-Funktion verwenden möchten muss man das Image nach .vdi konvertieren.

qemu-img convert single_vmware-image.vmdk raw-image.bin
VBoxManage convertdd raw-image.bin vbox-image.vdi

Dynamisches VDI Image - freien Platz freigeben

Ein dynamisches VDI Image belegt immer soviel Platz wie gerade benötigt wird. Löscht man im Gast-System allerdings Dateien, behält das VDI Image die vorherige Größe. Es wird also nicht wieder verkleinert und belegt mehr Platz auf der Festplatte des Host-Systems als nötig. Man kann allerdings mit etwas manuellem Aufwand das VDI Image wieder verkleinern. Dazu sind zwei Schritte notwendig.

  1. Freien Festplattenplatz im Gastsystem mit Nullen überschreiben
  2. VDI Image manuell verkleinern

Beispiel: Host = Linux, Gast = WindowsXP

1.
Windows XP starten, Festplatte defragmentieren und freien Platz mit Nullen überschreiben. Dazu kann man unter Windows z.B. das Programm SDelete verwenden.

sdelete.exe -z

2.
Windows XP runterfahren und Virtualbox beenden. Jetzt kann man in einem Terminal das VDI Image auf die tatsächlich benötigte Größe verkleinern.

VBoxManage modifyhd -compact /Pfad/zum/VDI-Image/Image.vdi

USB-Sticks in VM einhängen

Um USB2.0-Sticks in einer virtuellen Maschine einhängen zu können, muss in den Einstellungen der VM unter USB der entsprechende Haken bei USB-2.0 Controller aktivieren gesetzt sein.

Dafür muss das Paket virtualbox-ext-oracleAUR aus dem AUR installiert sein.

Weblinks