VBoxHeadless – Virtuelle Maschinen mit VirtualBox 3.1.x auf einem Debian Lenny Server

Autor: Alexander Fox <howtoforge [at] planetfox.de [dot] de>

Create: 22/03/10

Version 1.0

Folge mir auf Twitter |Diese Seite zu Mister Wong hinzufügen Folge mir auf Mr Wong
Orginal: Falko Timme

Diese Anleitung erläutert wie man virtuelle Maschinen mit Sun xVM VirtualBox 3.1.x auf einem Debian Lenny Server ohne Tastatur und Monitor betreibt. Normalerweise nimmt man die Benutzeroberfläche von VirtualBox um virtuelle Maschinen zu verwalten, aber Server haben keine Desktop-Umgebung. Es gibt jedoch für VirtualBox die Erweiterung VBoxHeadless, die den Zugang zu virtuellen Maschinen über eine Remote Verbindung ermöglicht, so dass man die VirtualBox Benutzeroberfläche nicht mehr braucht.

Ich übernehme keine Gewährleistung dafür dass es bei Dir genauso funktioniert!

1 Vorbemerkung

Ich habe diese Anleitung auf einem Debian Lenny Server (Host System) mit der IP Addresse 192.168.0.100 getestet, auf dem ich als normaler Benutzer angemeldet bin, anstatt als root. Benutzername ist in diesem Beispiel administrator.

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

... erstelle ein password für den neuen Benutzer

# passwd administrator


2. Installiere Virtual Box

Um VirtualBox 3 auf eurem Debian Lenny Server zu installieren, benötigt ihr root rechte, daher werden wir zu root

$ su

Danach fügen wir VirtualBox ins repository unseres Servers hinzu

# echo "deb http://download.virtualbox.org/virtualbox/debian lenny non-free" > /etc/apt/sources.list.d/virtualbox.list

Wir müssen den public key von Sun hin zu fügen

# wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | apt-key add -

wir müssen nun die Packet Datenbank Aktualisieren

# aptitude update

(Sollte ein Kernel update vorliegen, müsst ihr eventuel euer System Neustarten.)

# reboot

Log Dich nach dem Neustart wieder ein und werde zu root

# reboot

Nun installieren wir VirtualBox 3.1

# aptitude install linux-headers-$(uname -r) build-essential virtualbox-3.1 dkms

( das dkms Packet sorgt dafür das die VirtualBox host kernel module auch aktualisiert werden wenn der Kernel Aktualisiert wird )

Creating group 'vboxusers'
Users of VirtualBox must be members of that group. Host network interfaces will be assigned to that group. <-- Ok

Unable to find a precompiled module for the current kernel![...]
Should the vboxdrv kernel module be compiled now? <-- Yes

Wir müssen den user der VirtualBox nutzt ( administrator im Beispiel ) zur Gruppe vboxusers hinzufügen

# adduser administrator vboxusers

VirtualBox 3.1.x ist installiert und start bereit

# exit

verlasse den root account und loge dich mit dem user ( administrator ) ein.

3 VirtualBox auf der Kommandozeile bedienen

3.1 VM erstellen

Um VM auf der Kommandozeile zu erstellen, nutzen wir das VBoxManage Befehl. Siehe

$ VBoxManage --help

für eine Auflistung von verfügbaren Switches und (sehr empfehlenswert!) unbedingt Kapitel 8 beachten (VBoxManage Referenz) in der VirtualBox 3.1.x Bedienungsanleitung.

Ich werde nun eine Debian Lenny Server VM mit 256MB Memory und einer 10GB Festplatte von dem Debian Lenny Server Iso Image erstellen (welches ich in /home/debian-500-i386-netinst.iso gespeichert habe):

$ VBoxManage createvm --name "Debian Lenny Server" --register

$ VBoxManage modifyvm "Debian Lenny Server" --memory 256 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
$ VBoxManage createhd --filename Debian_Lenny_Server.vdi --size 10000 --register
$ VBoxManage storagectl "Debian Lenny Server" --name "IDE Controller" --add ide
$ VBoxManage storageattach "Debian Lenny Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Debian_Lenny_Server.vdi
$ VBoxManage storageattach "Debian Lenny Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/debian-500-i386-netinst.iso


3.2 Eine bereits erstellte VM importieren

Gehen wir davon aus, dass es bereits eine VM mit dem Namen examplevm gibt, die Du auf diesem Host wiederbenutzen willst. Auf dem alten Host sollte es ein Verzeichnis namens Machines/examplevm im VirtualBox Verzeichnis geben; Machines/examplevm sollte die Datei examplevm.xml enthalten. Kopiere das Verzeichnis examplevm (einschliesslich der examplevm.xml Datei) in Dein neues Machines Verzeichnis (wenn der Benutzername “Administrator” sein sollte, dann ist das /home/administrator/.VirtualBox/Machines – das Ergebnis sollte /home/administrator/.VirtualBox/Machines/examplevm/examplevm.xml sein).

Kopiere bitte zusätzlich die examplevm.vdi Datei aus dem alten VDI Verzeichnis in ein neues, z.B. /home/administrator/.VirtualBox/VDI/examplevm.vdi.

Danach musst Du die importierte VM registrieren:

$ VBoxManage registervm Machines/examplevm/examplevm.xml


3.3 Die VM mit VBoxHeadless starten

Ungeachtetdessen ob eine neue VM erstellt oder eine alte importiert wurde, kann man mit folgendem Befehl beginnen:

$ VBoxHeadless --startvm "Debian Lenny Server"

(Ersetze bitte Debian Lenny Server mit dem Namen Deiner VM.)

VBoxHeadless startet nun die VM und ein VRDP (VirtualBox Remote Desktop Protocol) Server, der es ermöglicht die Ausgabe der VM im Remotemodus auf einer anderen Maschine zu sehen.

Um die VM zu stopen, gebe folgendes ein

$ VBoxManage controlvm "Debian Lenny Server" poweroff

Um die Vm zu pausieren

$ VBoxManage controlvm "Debian Lenny Server" pause

Um zu reseten

$ VBoxManage controlvm "Debian Lenny Server" reset

Um mehr über die VBoxHeadlesszu erfahren, schaue Dir bitte an:

VBoxHeadless –help

und das Kapitel 7.4 (Remote virtual machines (VRDP support) im VirtualBox 3.1.x Handbuch .

4 Die Remote-Desktop Verbindung zur VM

4.1 Windows XP

Du kannst die bereits vorhandene Remote Desktop Connection nutzen um Dich mit der VM zu verbinden:

4.2 Windows 7 oder Vista


Gib den Namen des Hosts ein oder die IP Adresse des Hosts (nicht des Gasts!):


Und voilà, Du solltest mit der VM verbunden sein:

4.2 Linux

Auf Linux Desktops kann man den rdesktop Befehl nutzen um sich mit der VM zu verbinden. Öffne ein Terminal (auf Ubuntu ist es beispielsweise unter Applications > Accessories > Terminal)…

… und gib folgenden Befehl ein:

$ rdesktop -a 16 192.168.0.100

(192.168.0.100 ist die IP Adresse des Hosts, nicht der des Gasts – ersetz sie mit Deiner eignen IP Adresse oder dem Hostnamen; -a 16 bedeutet 16 Mill. Farben.)


Und voilà, Du solltest mit der VM verbunden sein:

6. Addon von PlaNet Fox

Ich habe für die lasse meine erstellten Vms Maschinen mit Screen laufen und habe dazu folgendes gemacht ihr könnt dass auch machen ist sehr simple

im Verzeichnis des beispiel users administrator einfach folgendes machen

$ nano debian_lenny_server.sh

Danach folgendes rein schreiben

screen -A -m -d -S administrator VBoxHeadless -startvm "Debian Lenny Server"

ihr speichert die datei und müsst sie ncoh ausführbar machen mit chmod

chmod +x debian_lenny_server.sh

Nun könnt ihr den Server folgendermaßen starten

administrator@server:~$ sh ./debian_lenny_server.sh

Nun sollte der Server starten, ihr könnt dies überprüfen

screen -list

There are screens on:
9505.administrator (22.03.2010 16:59:02) (Detached)


7. Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte