Original-URL des Artikels: https://www.golem.de/news/virtuelle-maschinen-virtualbox-funktioniert-auch-ohne-grafische-oberflaeche-1603-119609.html    Veröffentlicht: 10.03.2016 12:05    Kurz-URL: https://glm.io/119609

Virtuelle Maschinen

Virtualbox funktioniert auch ohne grafische Oberfläche

Virtualbox lässt sich komplett von der Kommandozeile aus steuern und bringt dabei auch Einstellungen mit, die es in der grafischen Oberfläche gar nicht gibt. Unsere Anleitung zeigt, wie das funktioniert.

Virtuelle Maschinen in Virtualbox lassen sich auch im sogenannten Headless-Modus starten: Sie laufen dann im Hintergrund, ohne ein eigenes Fenster zu öffnen. Einsetzen lässt sich das etwa für verschiedene Webserver oder -seiten, ein Honeypot oder eine experimentelle Netzwerkinfrastruktur. Wir haben uns die Kommandozeilenbefehle angesehen, mit der Virtualbox gesteuert werden kann und zeigen, wie man eine virtuelle Maschine ohne grafische Oberfläche einrichtet. Dazu automatisieren wir die Installation von Debian Jessie über das Netzwerk, so dass wir auch dafür auf Eingaben in einem Fenster verzichten können.

Da die virtuellen Rechner letztendlich aus einer Sammlung von Dateien bestehen, lassen sie sich einfach sichern oder gleich auf andere Rechner kopieren. Nach unserer Anleitung können virtuelle Maschinen auf entfernten Servern ohne grafische Oberfläche eingerichtet und gesteuert werden. Bei der Installation von Virtualbox werden zwar einige Mesa- und Qt-Bibliotheken für die grafische Oberfläche eingerichtet, auf eine vollständige Desktop-Umgebung kann aber verzichtet werden.

Die Installation

Da wir stets die aktuelle Version 5.0 von Virtualbox wollen, richten wir das von Oracle bereitgestellte Software-Repository ein, das sowohl DEB- als auch RPM-Pakete enthält. Die Versionen in den meisten Paketquellen der Linux-Distributionen sind veraltet. Auf der Download-Seite wird erklärt, wie das Repository unter diversen Linux-Distributionen eingerichtet werden kann. Wichtig ist, zusätzlich das Paket Dkms zu installieren, damit bei einem Kernel-Update die Virtualbox-Module vboxdrv, vboxnetflt und vboxnetadp ebenfalls aktualisiert werden können. Ob die Installation funktioniert hat und die benötigten Treiber geladen sind, erfährt man mit

/usr/lib/virtualbox/vboxdrv.sh status.

Nach einer Aktualisierung des Linux-Kernels erstellt und lädt der Befehl

/usr/lib/virtualbox/vboxdrv.sh steup

erneut die aktuellen Treiber. Bei einer Aktualisierung von Virtualbox ist das nicht notwendig.

Das Erweiterungspaket installieren

Wer später von einem entfernten Rechner aus über das grafische Virtualbox Remote Display Protokoll (VRDP) auf eine virtuelle Maschine zugreifen will, muss zusätzlich noch das Erweiterungspaket installieren. Im Gegensatz zur grafischen Anwendung gibt es an der Kommandozeile keine automatisierte Installationsroutine. Stattdessen muss zunächst die entsprechende Version des Erweiterungspakets anhand der Versionsnummer von Virtualbox ermittelt werden. Anschließend muss die Installationsdatei über den Befehl wget bei download.virtualbox.org heruntergeladen und schließlich mit dem Befehl vboxmanage extpack install installiert werden. Erschwert wird das durch den langen Dateinamen des Erweiterungspakets. Aktuell lautet er beispielsweise Oracle_VM_VirtualBox_Extension_Pack-5.0.14-105127.vbox-extpack.

Im Virtualbox-Forum hat der Benutzer Sasquatch ein Bash-Skript erstellt, das den Download und die Installation automatisiert. Das Skript ermittelt die Versionsnummer, setzt sie mit dem Namen des Erweiterungspakets korrekt zusammen, generiert den entsprechenden Wget-Befehl und installiert die heruntergeladene Datei mit dem Befehl vboxmanage extpack install *Dateiname* --replace. Unsere virtuelle Maschine wird den Namen "Debian_Server" tragen und mit dem aktuellen Debian Jessie bestückt werden.

Zentrales Verwaltungswerkzeug

Der Befehl vboxmanage ist die zentrale Verwaltungsanwendung von Virtualbox. Über ihn erfolgen die meisten der in diesem Artikel verwendeten Eingaben. Er beherrscht eine ganze Reihe Unterbefehle wie den eben beschriebenen extpack install. Die meisten Eingaben zur Einrichtung einer neuen virtuellen Maschine werden ebenfalls über vboxmanage gemacht. Sämtliche Einstellungen werden in einer Konfigurationsdatei mit der Dateiendung vbox gespeichert. Die Einstellungen sollten dort nicht editiert werden, sondern stets über die Befehle an der Kommandozeile. Sie liefert aber einen Überblick über die bisher vorgenommenen Befehle und die aktuellen Einstellungen der virtuellen Maschine. Alternativ lässt sich dafür der Befehl

vboxmanage showvminfo "Name der virtuellen Maschine"

verwenden.

Los geht's!

Zunächst erhält die neue virtuelle Maschine einen Namen und wird bei Virtualbox registriert:

vboxmanage createvm --name "Debian_Server" --register

Nun folgen die Zuweisung des Arbeitsspeichers und die Aktivierung des Advanced Configuration and Power Management Interface (ACPI) mit:

vboxmanage modifyvm "Debian_Server" --memory 1024 --acpi on

Die Größe des Arbeitsspeichers wird standardmäßig in Megabyte eingegeben. Er sollte genügend groß sein, um das in der virtuellen Maschine installierte Betriebssystem samt der benötigten Anwendungen nicht zu behindern. Gleichzeitig sollte auch dem Host-System noch genügend Arbeitsspeicher gelassen werden. Läuft die virtuelle Maschine einmal, erhält sie Zugriff auf den gesamten zugewiesenen Arbeitsspeicher. RAM kann dann lediglich dynamisch mit anderen laufenden virtuellen Maschinen geteilt werden - über Ballooning oder Page Fusion.

CPUs konfigurieren

Jetzt müssen wir noch den Prozessor tweaken. Bislang verwendet unsere virtuelle Maschine nur einen Kern und darf die reale CPU kaum auslasten. Mit dem Befehl

vboxmanage modifyvm "Debian_Server" --cpuexecutioncap 100

erlauben wir der virtuellen CPU, einen realen Prozessorkern bei Bedarf komplett zu nutzen. Hier sind Werte zwischen 0 und 100 möglich, aber auf modernen Mehrkernsystemen wenig sinnvoll.

Wer einer laufenden virtuellen Maschine bei Bedarf weitere CPUs zur Verfügung stellen will, kann diese Option zunächst mit vboxmanage modifyvm samt dem Parameter --cpuhotplug on aktivieren und mit dem zusätzlichen Parameter --cpus festlegen, wie viele Prozessoren der virtuellen Maschine maximal zur Verfügung gestellt werden können. Mit

vboxmanage modifyvm "Debian_Server" --plugcpu 1

wird im laufenden Betrieb eine CPU hinzugefügt. Mit dem Parameter --unplugcpu 1 kann die CPU wieder entfernt werden.

Damit der Debian-Server installiert werden kann, wird jetzt ein virtueller Datenträger erstellt.

Virtuelle Festplatte einrichten

Zunächst wechseln wir in das Verzeichnis, in dem die Dateien der virtuellen Maschine abgelegt werden. Bei der Installation legt Virtualbox im Benutzerverzeichnis einen Ordner namens VirtualBox Vms an, in dem bereits ein Unterordner mit dem Namen Debian_Server liegen sollte. Der neue Datenträger wird dort dann mit dem Befehl

vboxmanage createhd --filename Debian_Server.vdi --size 16000

erstellt. Damit erhält der virtuelle Datenträger im Virtualbox-eigenen VDI-Format eine Größe von 16 GByte. Der Datenträger wird wie bei der Standardeinstellung im grafischen Assistenten Virtualbox dynamisch alloziert - sprich, die Datei, die den virtuellen Datenträger enthält, wächst erst dann, wenn in der virtuellen Maschine Daten erzeugt werden. Mit dem obigen Befehl wird eine Obergrenze von sechzehn GByte gesetzt.

Gleich genug Platz schaffen

Für Debian teilt der grafische Assistent standardmäßig 8 GByte ein. Bei der Installation belegt der Debian-Server gerade einmal 1,5 GByte. Je nach Einsatzgebiet gilt es aber, bereits bei der Erstellung eine sinnvolle Größe zu wählen. Zwar lässt sich die VDI-Datei später mit vboxmanage modifyhd --resize vergrößern. Allerdings muss dann im darauf befindlichen Debian-Server die Partition ebenfalls aufwendig vergrößert werden.

Im nächsten Schritt verbinden wir den neuen Datenträger mit der virtuellen Maschine. Dazu wird der vboxmanage-Parameter storagectl verwendet. Mit

vboxmanage storagectl "Debian_Server" --name "SATA Controller" --add sata

wird der virtuellen Maschine zunächst ein SATA-Controller hinzugefügt. Alternativ gibt es auch einen IDE-Controller, der allerdings nur langsamere Durchsatzraten zulässt und auf vier Anschlüsse begrenzt ist. Beim SATA-Controller sind es 30. Prinzipiell sollte also immer der modernere SATA-Controller verwendet werden, sofern das Betriebssystem in der virtuellen Maschine die 2004 eingeführte Schnittstelle Advanced Host Controller Interface (AHCI) unterstützt. Ohnehin begrenzt der Datenträger, auf dem die virtuelle Festplatte abgelegt wird, die Lese- und Schreibgeschwindigkeit.

Festplatte einklinken

Mit

vboxmanage storageattach "Debian_Server" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium Debian_Server.vdi

wird jetzt die virtuelle Festplatte dem Controller zugeordnet. Wichtig sind hier zunächst die Parameter --port und --device. Ersterer legt fest, dass der virtuelle Datenträger an den ersten Controller angehängt wird, falls es mehrere gibt. Der Device-Parameter sorgt dann dafür, dass die virtuelle Festplatte die erste am Controller ist, was für die Installation des Bootloaders des Betriebssystems später wichtig sein wird. Der Parameter --type hdd bestimmt, dass es sich um eine Festplatte handelt. Alternativen sind hier lediglich fdd für Disketten-Images oder dvddrive für optische Datenträger oder ISO-Dateien.

Ohne DVD-Laufwerk geht's nicht

Egal, ob später von der Netzwerkkarte oder von einer ISO-Datei gebootet werden soll, ein fehlendes optisches Laufwerk bringt Virtualbox aus dem Tritt. Deswegen richten wir am SATA-Controller noch mit

vboxmanage storageattach "Debian_Server" --storagectl "SATA Controller" --port 1 --device 0 --type dvddrive --medium emptydrive

ein leeres optisches Laufwerk ein.

Jetzt kümmern wir uns um einen Netzwerkadapter, ohne den die virtuelle Maschine von anderen Rechnern aus nicht erreichbar wäre.

Die virtuelle Maschine vernetzen

Virtualbox kann mehrere verschiedene Netzwerkkarten emulieren. Normalerweise wird bei Debian eine virtuelle Version von Intels Netzwerkkarte PRO/1000 MT Desktop eingerichtet, die laut Beschreibung von den meisten Betriebssystemen erkannt wird und ohne die Installation zusätzlicher Treiber verwendet werden kann. Bei der Eingabe an der Kommandozeile werden die Kürzel der jeweiligen Karten benötigt, die im Handbuch nachgelesen werden können. Aber Achtung: Beim späteren Wechsel der Netzwerkkarte bekommen wir Probleme mit dem integrierten DHCP-Server.

Eine virtuelle Netzwerkkarte kann über verschiedene Netzwerke kommunizieren. Zur Auswahl stehen NAT, eine Netzwerkbrücke, ein internes Netzwerk und ein Host-only Adapter. Die Unterschiede liegen unter anderem in der Erreichbarkeit der virtuellen Maschine von außen und in der Kommunikation untereinander, falls etwa mehrere virtuelle Maschinen ein Netzwerk bilden sollen. Es ist auch möglich, einer virtuellen Maschine zwei oder mehr Netzwerkadapter zuzuweisen. Die Optionen für die Netzwerkkonfiguration sind zu zahlreich, um sie hier alle zu besprechen. Es lohnt sich durchaus, das entsprechende Kapitel des Handbuchs zu Virtualbox durchzulesen.

NAT ist die erste Wahl

Richtet man eine virtuelle Maschine in der grafischen Oberfläche ein, wird ein Netzwerkadapter standardmäßig mit NAT angeboten. Dieses Network Address Translation ist eine Art Firewall: Die virtuelle Maschine kann zwar nach außen kommunizieren, ist aber von dort aus nicht erreichbar, also auch nicht vom Rechner, auf dem die virtuelle Maschine läuft. NAT kann allerdings auch so konfiguriert werden, dass bestimmte Ports durchlässig sind. So lässt sich beispielsweise der Port 22 für einen SSH-Zugang öffnen, damit wir später Zugriff auf die virtuelle Maschine erhalten.

Da wir später Linux über das Netzwerk installieren wollen, benötigen wir einen Zugang für das Trivial File Transfer Protocol (TFTP) über das Preboot Execution Environment (PXE). Das NAT in Virtualbox unterstützt beides. Demnach richten wir unsere Netzwerkkarte mit dem Befehl

vboxmanage modifyvm "Debian_Server" --nic1 nat --nictype1 82540EM

ein. Die an dem Parameter --nic angehängte Ziffer 1 bezeichnet den ersten Netzwerkadapter der virtuellen Maschine. Standardmäßig nutzt Virtualbox den IPv4-Adressraum 10.0.2.0/24, wenn nur eine Netzwerkkarte verwendet wird. Das Gastsystem erhält die IP-Adresse 10.0.2.15, das Gateway hat die Adresse 10.0.2.2 und der dazugehörige Nameserver hat die Adresse 10.0.2.3. Kommt eine zweite Karte hinzu, erhält sie die Adresse 10.0.3.15. Der IPv4-Adressraum lässt sich auch ändern, etwa mit

vboxmanage modifyvm "Debian_Server" --natnet1 "192.168/16".

Dann bekommt das Gastsystem die IP-Adresse 192.168.0.15 und das Gateway ist über 192.168.0.2 erreichbar. Aber Achtung: Der DHCP-Server der virtuellen Maschine beansprucht dann sämtliche IP-Adressen von 192.168.0.0 bis 192.168.254.254 für sich. Sie werden selbstverständlich nur vergeben, wenn die virtuelle Maschine weitere Netzwerkkarten erhält. Ohnehin bleibt das virtuelle Netzwerk dem realen verborgen.

SSH weiterleiten

Schließlich wollen wir später vom Wirtssystem aus mit der virtuellen Maschine per SSH kommunizieren. Dazu richten wir eine Weiterleitung mit

vboxmanage modifyvm "Debian_Server" --natpf1 "gastssh,tcp,,2222,,22"

ein. Später können wir über Port 2222 des Wirtssystems auf den Port 22 im Gastsystem zugreifen, der standardmäßig für SSH reserviert ist. Die Bezeichnung gastssh kann frei gewählt werden. Die an dem Parameter --natpf angehängte Ziffer 1 weist die erstellte Regel dem ersten Netzwerkadapter der virtuellen Maschine zu. Mit dem Befehl

vboxmanage modifyvm "Debian_Server" --natpf1 delete "gastssh"

wird die Weiterleitung wieder gelöscht.

Prinzipiell sind damit die wichtigsten Komponenten unserer virtuellen Maschine eingerichtet. Jetzt geht es an die Installation eines Linux-Systems - ganz ohne Eingaben.

Installation ohne Eingaben

Exemplarisch installieren wir Debian über ein minimales Image, das zusätzlich benötigte Software-Pakete später über das Netzwerk nachholt. Zunächst müssen wir die Installationsdateien so modifizieren, dass sämtliche Eingaben, die normalerweise bei der Installation benötigt werden, automatisch erfolgen. Unter Debian und dessen Derivaten wie Ubuntu erfolgen solche automatisierte Installationen anhand von Preseed-Dateien.

Eine Preseed-Datei kann über eine URL, auf einem Datenträger oder in den Installationsdateien selbst bereitgestellt werden. Wir haben uns für die letzte Variante entschieden, da wir auf unserem entfernten Server keinen Zugriff auf USB-Ports haben und uns das mühselige und zeitraubende erneute Zusammenstellen einer ISO-Datei ersparen wollen. Unser Weg folgt prinzipiell einer ausführlichen Anleitung im deutschen Debian-Forum.

Integrierten TFTP-Server nutzen

Allerdings haben wir einige Änderungen vorgenommen. Da Virtualbox einen eigenen TFTP-Server bereitstellt, entfällt dessen etwas mühsame Einrichtung, wie sie in der Anleitung beschrieben wird. Wer allerdings öfter Betriebssysteme über das Netzwerk installieren will, sollte diesen Schritt doch in Erwägung ziehen.

Zunächst wechseln wir in das Verzeichnis, in dem Virtualbox seine Konfigurationsdateien ablegt. Unter Debian und Ubuntu liegt es im Benutzerverzeichnis unter .config/VirtualBox. Dort legen wir zunächst den Ordner TFTP an und wechseln dorthin. Dann holen wir mit

wget http://ftp.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz

die Installationsdateien für Debian Jessie ab und entpacken sie mit

tar xzvf netboot.tar.gz.

Über die Datei preseed.cfg geben wir dem Debian-Installer unsere Vorgaben mit. Sie muss im Startabbild initrd.gz abgelegt werden, das seinerseits im Unterverzeichnis debian-installer/amd64 liegt. Die in Initrd.gz enthalten Dateien und die Verzeichnisstruktur wurden mit dem Archivierungsprogramm Cpio zusammengefasst und anschließend mit dem Packprogramm Gzip komprimiert. Um an die Daten zu kommen, legen wir zunächst ein temporäres Verzeichnis im TFTP-Ordner an und wechseln dorthin. Mit dem Befehl

cat ../debian-installer/amd64/initrd.gz | gzip -d | sudo cpio -i

wird der Inhalt des Startabbilds ausgelesen. Der CPIO-Befehl muss mit Administrator-Rechten ausgeführt werden, weil dabei einige Gerätedateien kopiert werden.

Im Stammordner des entpackten Archivs legen wir jetzt die Datei preseed.cfg an, die wir bearbeiten wollen.

Debian-Installation automatisieren

Jeden möglichen Parameter zu besprechen, würde den Rahmen dieses Artikels sprengen. Eine ausführliche Liste aller Optionen für Debian Jessie gibt es bei Debian.org. Wir stellen stattdessen eine kommentierte Beispielspieldatei mit den wichtigsten Optionen zum Download bereit, in der lediglich der Name und die Domain des Rechners, der Benutzername und das Passwort angepasst werden müssen. Unsere Beispieldatei beginnt mit der Sprachauswahl, die dem Installer über die Zeile

d-i debian-installer/locale string de_DE.UTF-8

mitgeteilt wird. Da jetzt der Installer auf die deutsche Sprache eingestellt ist, geht das Installationsprogramm korrekterweise davon aus, dass auch Debian deutschsprachig installiert werden soll. Mit

d-i localechooser/translation/warn-light boolean true

reagieren wir auf eventuelle Nachfragen des Installers dazu. So geben wir dem Installationsprogramm unsere Antwort auf sämtliche Nachfragen, etwa zum Tastaturlayout, zur Netzwerkinstallation, dem Einrichten einer Zeitzone sowie zu den Paketquellen für Debian Jessie.

Automatische Partitionierung

Die Partitionierung ist ein wesentlicher und unter Umständen auch heikler Bestandteil einer Installation. In unserer Beispieldatei belassen wir es bei den Standardeinstellungen, bei denen die gesamte Festplatte mit einer Swap- und einer Hauptpartition formatiert wird, was in den meisten virtuellen Maschinen am sinnvollsten ist. In der oben verlinkten Beispieldatei bei debian.org werden weitere Optionen für die Partitionierung beschrieben.

Anschließend erfolgt die Einrichtung eines Benutzers. Wir haben uns für die Variante entschieden, die auch bei Ubuntu zum Einsatz kommt. Der Administrator root erhält kein eigenes Login, sondern wird vom Benutzer mit sudo initiiert. Das bei der Installation von Debian erforderliche Benutzerpasswort wird entweder im Klartext in die Preseed-Datei eingetragen, oder es lässt sich vorher hashen. In unserer Beispieldatei steht, wie das funktioniert.

Minimale Softwareauswahl

Bei der Auswahl der zu installierenden Softwarepakete wählen wir den Basiswert standard. Damit werden zunächst nur die wichtigsten Pakete installiert, die wir später jederzeit ergänzen können. Die Installation ist bei einer guten Internetverbindung und einigermaßen kräftiger Hardware in zehn Minuten erledigt. Damit wir später per SSH auf unsere Debian-Installation zugreifen können, müssen wir das Installationsprogramm noch über den Parameter ssh-server anweisen, das entsprechende Paket einzurichten.

Schließlich fordern wir den Debian-Installer noch auf, den Bootloader Grub auf der ersten Festplatte zu installieren, und lassen die virtuelle Maschine nach Abschluss der Installation herunterfahren, da wir vor einem Neustart die Startreihenfolge so ändern müssen, dass Virtualbox zuerst den virtuellen Datenträger mit unserem frisch installierten Debian Jessie bootet.

Jetzt können wir die Einrichtung unseres TFTP-Servers abschließen und mit der automatisierten Installation beginnen.

Die Installation

Zunächst packen wir den Inhalt des temporären Ordners samt unserer neuen Preseed-Datei mit dem Befehl

find | cpio -o --format=newc | gzip -9c > ../initrd.gz

wieder zusammen. Diese modifizierte Abbilddatei liegt jetzt im Stammverzeichnis der neuen virtuellen Maschine und muss von dort in den Ordner debian-installer/amd64 kopiert werden. Jetzt erstellen wir ebenfalls im Stammverzeichnis der virtuellen Maschine einen symbolischen Link zum Startabbild pxelinux.0 mit einem eindeutigen Namen. Der Befehl dafür lautet:

ln -s debian-installer/amd64/pxelinux.0 debian.pxe.

Danach müssen wir noch die PXE-Umgebung in Virtualbox definieren. Das erledigt der Befehl

vboxmanage modifyvm "Debian_Server" --nattftpfile1 /debian.pxe

In einem letzten Schritt werden noch die Startparameter in der Datei debian-installer/amd64/boot-screens/syslinux.cfg angepasst. Unter der letzten Zeile fügen wir folgende neue ein:

DEFAULT jessie
LABEL jessie
kernel debian-installer/amd64/linux
append vga=normal initrd=debian-installer/amd64/initrd.gz auto=true priority=critical preseed/file=/preseed.cfg

Schließlich verändern wir die Startreihenfolge unserer virtuellen Maschine so, dass zuerst über das Netzwerk gestartet werden soll:

vboxmanage modifyvm "Debian_Server" --boot1 net

Die virtuelle Maschine starten

Der Befehl

vboxmanage startvm "Debian_Server" --type headless

startet unsere neue virtuelle Maschine und die automatische Installation von Debian, die etwa zehn Minuten dauern sollte. Mit vboxmanage list runningvms lässt sich feststellen, welche virtuellen Maschinen gerade laufen. Nachdem sich unsere virtuelle Maschine nach der Installation automatisch wieder ausgeschaltet hat, können wir mit

vboxmanage modifyvm "Debian_Server" --boot1 disk

die Startreihenfolge wieder so abändern, dass von der virtuellen Festplatte gebootet wird, und Debian zum ersten Mal hochfahren.

Mit ssh @127.0.0.1 -p2222 melden wir uns anschließend an unserem frisch installierten System an.

Wir hatten bisher keine Möglichkeit, auf mögliche Fehler bei der Installation zu reagieren. Mit einem Trick können wir aber das Installationsprotokoll in der virtuellen Maschine von außen betrachten.

Von außen hineinsehen

Der Debian-Installer protokolliert sämtliche Schritte in der Datei /var/log/syslog. Sollte etwas schieflaufen, kann der Inhalt dieser Protokolldatei über einen seriellen Port umgeleitet werden. Dazu muss zunächst der Benutzer im Host-System der Gruppe dialout mit

sudo gpasswd --add "Benutzername" dialout

hinzugefügt werden. Anschließend müssen wir uns erneut anmelden. Jetzt wechseln wir in das temporäre Verzeichnis, in dem wir zuvor das Startabbild initrd.gz entpackt haben. Dort fügen wir in der Datei etc/inittab unter dem Abschnitt logging folgende Zeile ein:

::respawn:cat /var/log/syslog > /dev/ttyS0

Sie bewirkt, dass der Inhalt der Protokolldatei während der Installation an die serielle Schnittstelle von Debian weitergeleitet wird. Jetzt muss Initrd.gz wie oben beschrieben wieder gepackt und in das Startverzeichnis des TFTP-Servers kopiert werden.

Die serielle Schnittstelle

Anschließend richten wir für unsere virtuelle Maschine eine serielle Schnittstelle ein. Das erledigen wir mit dem Befehl:

vboxmanage modifyvm "Debian_Server" --uart1 0x3F8 4

Außerdem weisen wir Virtualbox an, beim Start eine Pipe-Datei anzulegen

vboxmanage modifyvm "Debian_Server" --uartmode1 server /tmp/deb_debug

Auf unserem Hauptsystem installieren wir die Hilfsdatei Socat aus den Softwarequellen. Nach einem erneuten Start unserer virtuellen Maschine im Installationsmodus können wir Socat mit dem Befehl

socat unix-Client:/tmp/deb_debug stdout

mit der Pipe-Datei verbinden und die Ausgabe des Installers beobachten. Wegen der geringen Übertragungsgeschwindigkeit der seriellen Schnittstelle hinkt die Ausgabe zwar etwas hinterher, ist aber schnell genug, um die Arbeit des Installers bis kurz vor der Einrichtung des Bootloaders Grub zu verfolgen.

Wird der serielle Port dann nicht mehr benötigt, lässt er sich mit

vboxmanage modifyvm "Debian_Server" --uart1 off

wieder entfernen.

Der von uns beschriebene Weg ist nur einer von mehreren möglichen. Er erfordert aber nur wenige Schritte und lässt sich auch in einem Skript zusammenfassen, was die Einrichtung virtueller Maschinen automatisieren kann. Die in dieser Anleitung beschriebenen Befehle sind nur ein Bruchteil der Einstellungs- und Steuerungsmöglichkeiten für Virtualbox. Entsprechend umfangreich ist das englischsprachige Handbuch. Es zu durchforsten lohnt sich.  (jt)


Verwandte Artikel:
Betriebssysteme: Linux 4.16 schließt weitere Spectre- und Meltdown-Lücken   
(13.02.2018, https://glm.io/132729 )
Virtualisierung: Linux-Gasttreiber für Virtualbox bekommt Mainline-Support   
(17.01.2018, https://glm.io/132216 )
ReactOS 0.4.0: Windows-Nachbau führt Ext2-Dateisystem ein   
(19.02.2016, https://glm.io/119228 )
Virtualisierung: Virtualbox 5.0 unterstützt USB 3.0   
(11.07.2015, https://glm.io/115172 )
Virtualisierung: Virtualbox 5.0 mit USB 3.0 und verschlüsselten Datenträgern   
(02.04.2015, https://glm.io/113298 )

© 1997–2019 Golem.de, https://www.golem.de/