VBoxHeadless - Virtuelle Maschinen mit VirtualBox 4.1 auf einem headless CentOS 6.2 Server

Version 1.0
Author: Falko Timme
Follow me on Twitter

Dieses Tutorial erklärt, wie Sie virtuelle Maschinen mit VirtualBox 4.1 auf einem headless CentOS 6.2 Server benutzen. Normalerweise würden Sie dazu die grafische Virtualbox Oberfläche benutzen, ein Server hat jedoch keinen Desktop. Glücklicherweise bringt VirtualBox ein Tool namens VBoxHeadless mit, welches es Ihnen erlaubt über eine Remote-Desktopverbindung auf Ihre virtuellen Maschinen zuzugreifen, sodass keine grafische Oberfläche von Nöten ist.

Für die Richtigkeit der Inhalte dieses Tutorials gebe ich keinerlei Garantie!

1 Vorbemerkung

Ich habe das Setup auf einem CentOS 6.2 Server (Host System) mit der IP-Adresse 192.168.0.100 getestet, auf dem ich als normaler Benutzer (in diesem Beispiel mit dem Benutzernamen admin) anstatt root angemeldet war.

Haben Sie nur ein root Benutzerkonto aber kein normales, erstellen Sie wie folgt eines (Benutzer admin, Gruppe admin)...

# groupadd admin
# useradd -d /home/admin -m -g admin -s /bin/bash admin

... erstellen Sie ein Passwort für den neuen Benutzer...

# passwd admin

... und melden Sie sich mit diesem an.

2 Installation von VirtualBox

Um VirtualBox 4.1 auf unserem CentOS 6.2 Server zu installieren, benötigen Sie root Rechte, führen Sie deshalb folgendes aus:

$ su

Installieren Sie dann folgendesmaßen die Abhängigkeiten von Virtualbox 4.1:

# yum groupinstall 'Development Tools'

# yum install SDL kernel-devel kernel-headers dkms

Mit dem letzten Befehl haben Sie die Kernel Header des zur Zeit benutzten Kernels installiert. Die Header finden sich im /usr/src/kernels/ Verzeichnies, allerdings heißen deren Verzeichnisse wahrscheinlich nicht <kernel_version>-<architecture> sondern haben andere Namen, sodass das VirtualBox Kernelmodul später nicht gebaut werden kann, weil die erwarteten Kernel Header Verzeichnisse nicht gefunden werden können. Dies korrigieren wir nun:

Finden Sie die Version Ihres Kernels heraus...

# uname -r

[root@server1 ~]# uname -r
2.6.32-220.el6.x86_64
[root@server1 ~]#

Das bedeutet, dass es im Verzeichnis /usr/src/kernels/ einen Ordner namens 2.6.32-220.el6.x86_64 geben sollte. Dies lässt sich überprüfen:

# cd /usr/src/kernels/
# ls -l

[root@server1 kernels]# ls -l
total 4
drwxr-xr-x 22 root root 4096 Jun 25 17:30 2.6.32-220.23.1.el6.x86_64
[root@server1 kernels]#

Wie Sie sehen findet sich das Verzeichnis 2.6.32-220.23.1.el6.x86_64, nicht aber 2.6.32-220.el6.x86_64. Es muss also ein Symlink namens 2.6.18-238.el5-x86_64 erstellt werden, welcher auf 2.6.18-238.9.1.el5-x86_64 zeigt:

# ln -s 2.6.32-220.23.1.el6.x86_64 `uname -r`

Laden Sie als nächstes den öffentlichen VirtualBox rpm Schlüssel herunter und registrieren diesen:

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
# rpm --import oracle_vbox.asc
# rm -f oracle_vbox.asc

Aktivieren Sie nun die VirtualBox CentOS Repository auf Ihrem System:

# cd /etc/yum.repos.d/
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Sie können VirtualBox 4.1 nun wie folgt installieren:

# yum install VirtualBox-4.1

War die Installation erfolgreich, sollte die Ausgabe etwa so enden:

[...]
Running Transaction
Installing : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64                                                                                                 1/1
Creating group 'vboxusers'. VM users must be member of that group!
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.

Stopping VirtualBox kernel modules [  OK  ]
Uninstalling old VirtualBox DKMS kernel modules [  OK  ]
Trying to register the VirtualBox kernel modules using DKMS [  OK  ]
Starting VirtualBox kernel modules [  OK  ]

Installed:
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Complete!
[root@server1 kernels]#

(Schlägt die Installation fehl weil die korrekten Kernel Header Verzeichnisse nicht gefunden werden können, endet die Ausgabe etwa so:

[...]
Running Transaction
Installing : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64                                                                                                 1/1
Creating group 'vboxusers'. VM users must be member of that group!
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.

Stopping VirtualBox kernel modules [  OK  ]
Uninstalling old VirtualBox DKMS kernel modules [  OK  ]
Trying to register the VirtualBox kernel modules using DKMS
Error! Your kernel source for kernel 2.6.32-220.el6.x86_64 cannot be found at
/lib/modules/2.6.32-220.el6.x86_64/build or /lib/modules/2.6.32-220.el6.x86_64/source.
[FAILED]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [FAILED]
(Look at /var/log/vbox-install.log to find out what went wrong)

Installed:
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Complete!
[root@server1 kernels]#

Versuchen Sie in diesem Fall den korrekten Kernel Symlink zu erstellen (wie zuvor gezeigt) und benutzen Sie dann

# /etc/init.d/vboxdrv setup

um das VirtualBox Kernelmodul zu erstellen.)

Nun müssen Sie den Benutzer zur vboxusers Gruppe hinzufügen, der VirtualBox ausführen wird (in diesem Beispiel ist das admin):

# /usr/sbin/usermod -G vboxusers admin

VirtualBox ist nun installiert und einsatzbereit.

Ab Version 4.0 hat VirtualBox sogenannte "Extension Packs" (Erweiterungspakete) eingeführt und einige Funktionen, die früher Teil des Programms waren, wie die Remote Desktop Unterstützung (VRDP), in diese Pakete ausgelagert. Da wir Remote Desktop Verbindungen benötigen um unsere virtuellen Maschinen zu kontrollieren müssen Sie nun das entsprechende Zusatzpaket installieren. Gehen Sie auf http://www.virtualbox.org/wiki/Downloads, wo Sie einen Link auf das folgende Erweiterungspaket finden werden:

VirtualBox 4.1.18 Oracle VM VirtualBox Extension Pack
Support for USB 2.0 devices, VirtualBox RDP and PXE boot for Intel
cards.

Laden Sie das Erweiterungspaket wie folgt herunter und installieren es:

# cd /tmp
# wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack

(Stellen Sie sicher, dass Sie die neuste Version von der Seite herunterladen.)

Geben Sie

# exit

ein um das root Benutzerkonto zu verlassen und wieder in das normale Benutzerkonto (admin) zurückzukehren.

3 VirtualBox über die Kommandozeile benutzen

3.1 Eine VM erstellen

Um eine VM auf der Kommandozeile zu erstellen können Sie den VBoxManage Befehl benutzen. Sehen Sie sich

$ VBoxManage --help

an um eine Liste der verfügbaren Optionen zu bekommen und schauen Sie auch einmal auf http://www.virtualbox.org/manual/ch08.html (empfohlen!).

Ich werde nun eine virtuelle Maschine mit einem Ubuntu 12.04 Server, 1024MB Arbeitsspeicher und einer 10GB Festplatte mit Hilfe eines Ubuntu 12.04 Server iso Abbilds erstellen (welches sich in /home/ubuntu-12.04-server-amd64.iso befindet):

$ VBoxManage createvm --name "Ubuntu 12.04 Server" --register

$ VBoxManage modifyvm "Ubuntu 12.04 Server" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0

$ VBoxManage createhd --filename Ubuntu_12_04_Server.vdi --size 10000

$ VBoxManage storagectl "Ubuntu 12.04 Server" --name "IDE Controller" --add ide

$ VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_12_04_Server.vdi

$ VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-12.04-server-amd64.iso

3.2 Importieren einer bestehenden VM

Nehmen wir an Sie haben eine VM namens examplevm, welche Sie auf diesem Host wiederverwenden möchten. Auf dem alten Host sollten Sie das Verzeichnis Machines/examplevm im VirtualBox Ordner haben; Machines/examplevm sollte die examplevm.xml Datei beinhalten. Kopieren Sie das examplevm Verzeichnis (einschließlich der examplevm.xml Datei) in Ihr neues Machines Verzeichnis (ist Ihr Benutzername admin ist dies /home/admin/.VirtualBox/Machines - das Ergebnis sollte /home/admin/.VirtualBox/Machines/examplevm/examplevm.xml sein).

Zusätzlich müssen Sie die examplevm.vdi Datei aus dem alten VDI Verzeichnis ins neue kopieren (z.B. /home/admin/.VirtualBox/VDI/examplevm.vdi).

Anschließend müssen Sie die importierte VM registrieren:

$ VBoxManage registervm Machines/examplevm/examplevm.xml


0 Kommentar(e)

Zum Posten von Kommentaren bitte