VBoxHeadless – Ausführen von virtuellen Maschinen mit VirtualBox 5.1 auf einem Headless Ubuntu 16.04 LTS Server
In diesem Handbuch wird erläutert, wie Sie virtuelle Maschinen mit VirtualBox 5.1 auf einem kopflosen Ubuntu 16.04-Server ausführen können. Normalerweise verwenden Sie die VirtualBox-GUI zur Verwaltung Ihrer virtuellen Maschinen, aber ein Server verfügt nicht über eine Desktop-Umgebung. Glücklicherweise wird VirtualBox mit einem Tool namens VBoxHeadless geliefert, mit dem Sie eine Verbindung zu den virtuellen Maschinen über eine Remote-Desktopverbindung herstellen können, so dass die VirtualBox-GUI nicht benötigt wird.
1 Vorbemerkung
Ich habe dies auf einem Ubuntu 16.04 Server (Hostsystem) mit der IP-Adresse 192.168.1.100 getestet, wo ich als normaler Benutzer (in diesem Beispiel Benutzername-Administrator) und nicht als root angemeldet bin.
2 Installation von VirtualBox
Um VirtualBox 5.1 auf unserem Ubuntu 16.04 Server zu installieren, öffnen wir /etc/apt/sources.list…..
sudo nano /etc/apt/sources.list
…. und fügen Sie die folgende Zeile hinzu:
deb http://download.virtualbox.org/virtualbox/debian xenial contrib
Dann laden wir den öffentlichen VirtualBox-Schlüssel herunter…..
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
…. und aktualisieren Sie unsere Paketdatenbank:
sudo apt-get update
Anschließend installieren wir VirtualBox 5.1 wie folgt:
sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-5.1 dkms
(Das dkms-Paket stellt sicher, dass die VirtualBox Host-Kernelmodule ordnungsgemäß aktualisiert werden, wenn sich die Version des Linux-Kernels ändert.)
Seit der Version 4.0 hat VirtualBox so genannte „Extension Packs“ eingeführt und einige Funktionen wie Remote Desktop Connection Support (VRDP), die vor der Version 4.0 Teil der VirtualBox-Pakete waren, in diese Extension Packs ausgelagert. Da wir Remote-Desktopverbindungen zur Steuerung unserer virtuellen Maschinen benötigen, müssen wir jetzt das entsprechende Erweiterungspaket installieren. Gehen Sie auf http://www.virtualbox.org/wiki/Downloads, und Sie finden einen Link zu dem folgenden Erweiterungspaket:
VirtualBox 5.1 Oracle VM VirtualBox Extension Pack
Laden Sie das Erweiterungspaket herunter und installieren Sie es wie folgt:
cd /tmp wget http://download.virtualbox.org/virtualbox/5.1.0/Oracle_VM_VirtualBox_Extension_Pack-5.1.0-108711.vbox-extpack sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.0-108711.vbox-extpack
(Stellen Sie sicher, dass Sie die neueste Version von der VirtualBox-Website beziehen und sudo verwenden, um die extpack-Datei mit VBoxManage zu installieren.)
Nun müssen wir den Benutzer, der VirtualBox (in diesem Beispiel Administrator) ausführen soll, zur vboxusers-Gruppe hinzufügen:
sudo adduser administrator vboxusers
VirtualBox ist nun installiert und einsatzbereit.
3 Verwenden von VirtualBox auf der Befehlszeile
3.1 Erstellen einer VM
Um eine VM auf der Befehlszeile zu erstellen, können wir den Befehl VBoxManage verwenden. Siehe
VBoxManage --help
eine Liste der verfügbaren Schalter und (sehr empfehlenswert!) finden Sie unter http://www.virtualbox.org/manual/ch08.html.
Ich werde nun eine Ubuntu 16.04 Server VM mit 2048MB Speicher und einer 10GB Festplatte aus dem Ubuntu 16.04 Server iso Image erstellen (das ich in /home/administrator/iso/ubuntu-16.04-server-amd64.iso gespeichert habe):
VBoxManage createvm --name "Ubuntu 16.04 Server" --register VBoxManage modifyvm "Ubuntu 16.04 Server" --memory 2048 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 ens33 VBoxManage createhd --filename /home/administrator/Ubuntu_16_04_Server.vdi --size 10000 VBoxManage storagectl "Ubuntu 16.04 Server" --name "IDE Controller" --add ide VBoxManage storageattach "Ubuntu 16.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/administrator/Ubuntu_16_04_Server.vdi VBoxManage storageattach "Ubuntu 16.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/administrator/iso/ubuntu-16.04-server-amd64.iso VBoxManage modifyvm "Ubuntu 16.04 Server" --vrde on
Fahren Sie nun mit Kapitel 3.3 fort, um den vm zu starten und verbinden Sie sich dann mit der VM über einen Remote Desktop Client, wie in Kapitel 4 beschrieben.
3.2 Importieren einer vorhandenen VM
Angenommen, Sie haben eine VM namens examplevm, die Sie auf diesem Host wiederverwenden möchten. Auf dem alten Host sollten Sie im VirtualBox-Verzeichnis ein Verzeichnis Machines/examplevm haben; Machines/examplevm sollte die Datei examplevm.xml enthalten. Kopieren Sie das Verzeichnis examplevm (einschließlich der Datei examplevm.xml) in Ihr neues Maschinenverzeichnis (wenn Ihr Benutzername Administrator ist, ist dies /home/administrator/.VirtualBox/Machines – das Ergebnis sollte /home/administrator/.VirtualBox/Machines/examplevm/examplevm.xml sein).
Kopieren Sie außerdem die Datei examplevm.vdi aus dem alten VDI-Verzeichnis in das neue (z.B. /home/administrator/.VirtualBox/VDI/examplevm.vdi).
Anschließend müssen Sie die importierte VM registrieren:
VBoxManage registervm Machines/examplevm/examplevm.xml
3.3 Starten einer VM mit VBoxHeadless
Unabhängig davon, ob Sie eine neue VM erstellen oder eine alte importieren, können Sie sie mit dem Befehl starten:
VBoxHeadless --startvm "Ubuntu 16.04 Server"
(Ersetzen Sie Ubuntu 16.04 Server durch den Namen Ihrer VM.)
VBoxHeadless startet die VM und einen VRDP (VirtualBox Remote Desktop Protocol) Server, mit dem Sie die Ausgabe der VM aus der Ferne auf einem anderen Computer sehen können.
Um eine VM zu stoppen, führen Sie aus
VBoxManage controlvm "Ubuntu 16.04 Server" poweroff
Um eine VM zu pausieren, führen Sie aus
VBoxManage controlvm "Ubuntu 16.04 Server" pause
Um eine VM zurückzusetzen, führen Sie aus
VBoxManage controlvm "Ubuntu 16.04 Server" reset
Um mehr über VBoxHeadless zu erfahren, werfen Sie einen Blick auf
VBoxHeadless --help
und unter http://www.virtualbox.org/manual/ch07.html#vboxheadless.
4 Verbinden mit einer VM von einem Remote Desktop aus
4.1 Windows
Sie können das integrierte Dienstprogramm Remote Desktop Connection verwenden, um eine Verbindung zur VM herzustellen.
Geben Sie den Hostnamen oder die IP-Adresse des Hosts (nicht des Gastes!) ein:
Und voilà, du solltest mit der VM verbunden sein:
4.2 Ubuntu Desktop
Auf Ubuntu-Desktops können Sie den Remmina Remote Desktop Client oder gnome-rdp verwenden, um sich mit der VM zu verbinden.
Installieren Sie den Client mit apt:
sudo apt-get install remmina remmina-plugin-rdp
Suchen Sie einfach nach remmina und doppelklicken Sie dann auf das Remmina Client-Symbol, um die RDP-Anwendung zu starten.
Klicken Sie im Remmina Remote Desktop Client auf das Plus-Symbol, um eine neue Remote Desktop-Verbindung hinzuzufügen:
Geben Sie im Fenster Remote Desktop Preference einen Namen für das Profil ein (z.B. Ubuntu 16.04 Server), stellen Sie sicher, dass RDP als Protokoll ausgewählt ist (es sollte standardmäßig ausgewählt sein), und geben Sie dann die Host-IP-Adresse ein – nicht die IP-Adresse des VirtualBox-Gastes! – im Feld Server, und wählen Sie eine höhere Farbtiefe als die Voreinstellung von 8bpp – 16bpp ist ok. Klicken Sie dann auf Verbinden:
Und voilà, du solltest mit der VM verbunden sein:
4.3 Wenn die Remotedesktopverbindung nicht funktioniert…..
Wenn die Remote-Desktopverbindung nicht funktioniert, haben Sie wahrscheinlich den Schritt verpasst, bei dem ich das VirtualBox-Erweiterungspaket in Kapitel 2 installiert habe. Bitte installieren Sie das Erweiterungspaket jetzt, stoppen Sie Ihre virtuelle Maschine (siehe Kapitel 3.3) und ändern Sie Ihre virtuelle Maschine so, dass sie Remote-Desktopverbindungen akzeptiert:
VBoxManage modifyvm "Ubuntu 16.04 Server" --vrde on
(Wenn das Erweiterungspaket bereits beim Erstellen Ihrer virtuellen Maschine installiert ist, werden Remote-Desktop-Verbindungen automatisch aktiviert.)
Starten Sie dann Ihre virtuelle Maschine erneut.
5 Links
- VirtualBox: http://www.virtualbox.org/
- Ubuntu: http://www.ubuntu.com/