Debian automatisiert installieren & einrichten: So funktioniert Preseed (Voreinstellung) – Einstieg für Anfänger

Als Video ansehen
Bereitgestellt über YouTube

Debian automatisiert installieren & einrichten: So funktioniert Preseed (Voreinstellung) – Einstieg für Anfänger

Eine händische GNU/Linux-Installation ist zwar nicht ganz so mühsam, wie es bei Windows mittlerweile der Fall ist. Auch dort nimmt die händische Navigation durch den Installations-Assistenten Zeit in Anspruch und nervt. Vor allem dann, wenn dies häufiger durchgeführt wird, weil man etwa neue Testsysteme aufsetzt oder (in Unternehmen) eine größere Anzahl an Geräten einrichtet. Konsistenz ist ebenfalls ein Punkt. Dieser Beitrag zeigt, wie Debian mittels Preseed teilweise oder auf Wunsch auch komplett automatisch installiert werden kann.

Warum sollte man die Installation automatisieren?

Während die händische Installation für Einsteiger sicher lehrreich ist, bringt sie für erfahrenere Anwender keinen Mehrwert mehr – eher im Gegenteil: Zum 101sten Mal durch bekannte Dialoge zu navigieren, ist langweilig, kostet Zeit und es erhöht die Fehleranfälligkeit. Letzteres ist gerade dann wichtig, wenn man mehrere produktive Geräte einrichten möchte. Bei monotonen Tätigkeiten hat man sich schnell mal vertippt oder macht andere Fehler. Außerdem führt Automatisierung zu mehr Flexibilität, weil die Hemmschwelle einer frischen Installation fällt. Und wir haben die Einrichtung in Form von Konfigurationsdateien vorliegen. Das macht sie reproduzierbar sowie bietet die Möglichkeit zur Versionierung. Änderungen lassen sich nachvollziehen, bei Problemen kann zu einem funktionierenden Stand zurückgesprungen werden.

Es gibt also eine Reihe an Vorteilen. In wie weit sich dies lohnt, ist natürlich vom konkreten Einsatz in der Praxis abhängig. Wer mehrere Systeme besitzt und auch öfter mal eine frische Testinstallation benötigt, wird davon mehr profitieren, als ein durchschnittlicher Nutzer mit einem einzigen GNU/Linux-Notebook. Dies sollte man für sich selbst abwägen, wie bei vielen anderen Dingen auch.

Wie funktioniert die Automatisierung mittels Voreinstellung/Preseeding?

Die Vorgehensweise liegt darin, eine Preseed-Konfigurationsdatei zu erstellen. Ihr könnt hierfür meine vorbereitete weiter unten anpassen. Sie ist als Antwortdatei zu verstehen: Sämtliche Dinge, die dort definiert sind, fragt der Assistent während der Installation nicht mehr ab. Es ist daher möglich, sowohl die komplette Installation, als auch nur einen Teil davon zu automatisieren. Das offizielle Beispiel für Debian 11 Bullseye zeigt die umfangreichen Möglichkeiten, welche die des Assistenten teilweise sogar übersteigen.

Es gibt drei Wege, diese Preseed-Konfigurationsdatei zu laden:

  1. In das ISO-Abbild per Initrd integrieren. Nach dem Booten wählt man die automatische Installation aus und die Datei wird sofort geladen. Dies benötigt am wenigsten Infrastruktur, allerdings mehr Vorbereitung. Mehrere Varianten lassen sich nur mit unterschiedlichen ISOs erstellen, weswegen diese Variante für umfangreichere Umgebungen mit verschiedenen Konfigurationen weniger geeignet ist.
  2. Manuell über eine Datei vor dem Booten, in dem man sie als Kernel-Parameter angibt. Dies erlaubt es, aus mehreren Dateien zu wählen, ohne für jede ein eigenes ISO-Abbild erstellen zu müssen. Im Gegensatz zur ersten Variante wird die Preseed-Datei nicht fest in das Abbild eingebunden und daher auch nicht automatisch geladen. Dafür lassen sich einfacher mehrere Dateien ablegen.
  3. Per Netzwerk. Auch dies wird als Kernel-Parameter spezifiziert, allerdings liegt die Preseed-Datei hierbei nicht auf dem Installationsmedium wie z.B. einem USB-Stick, sondern wird von einem Webserver im Netzwerk ausgeliefert. Die Datei kann somit zentral verwaltet werden, ohne dass bei jeder Änderung der USB-Stick angepasst werden muss.

Initrd ist in der Einrichtung und Pflege am aufwändigsten, ich empfehle Datei oder Netzwerk.

Vorbereitung: Das brauchst du

  • Das gewünschte Debian Installationsabbild (ich verwende hier Debian 11.6.0) – wahlweise die kompakte Netzwerk-Installation, oder auch ein vollständiges DVD-Abbild.
  • Für Initrd und Datei wird ein laufendes GNU/Linux-System benötigt, da beide Varianten es erforderlich machen, das ISO-Abbild anzupassen. Ich verwende Manjaro, ebenfalls erfolgreich getestet wurde Debian 11 selbst. Auch Debian-Derivate wie Ubuntu sollten funktionieren. Unter anderen Distributionen müsst ihr ggf. Anpassungen vornehmen, etwa hinsichtlich Paketmanager und Namen der Pakete.
  • Entscheidest du dich für die Variante Netzwerk, muss ein vom Zielsystem erreichbarer Webserver vorhanden sein, auf den du die Preseed-Datei ablegst.

Da der ISO9660 Treiber keine Schreibvorgänge in ISO-Abbildern unterstützt, müssen wir in jedem Fall ein neues ISO erstellen. Das heißt: Vorhandenes ISO mounten, den Inhalt kopieren und daraus ein neues anlegen. Das Werkzeug genisoimage erzeugt uns aus dem kopierten Ordner ein bootfähiges Abbild. Während das für VMs ausreicht, ist zum Booten von USB-Sticks zusätzlich ein sogenanntes hybrides Abbild notwendig – dafür gibt es isohybrid. Unter Manjaro/Arch befinden sich beide im gleichen Paket, wer Debian und seine Derivate nutzt, benötigt folgende beiden:

# Manjaro/Arch Linux
pamac install syslinux

# Debian & Derivate
apt install genisoimage syslinux-utils

Erstellen der preseed.cfg: Herzstück zur Automatisierung

In jedem Falle müssen wir zunächst eine Preseed-Konfigurationsdatei erstellen – die drei Varianten unterscheiden sich nur darin, zu welchem Zeitpunkt und auf welche Art diese Datei geladen wird. Die Debian-Dokumentation erklärt, welche Möglichkeiten es gibt. Dazu existiert für jede Major-Version eine Beispiel-Datei, wie etwa diese hier für Debian 11. Sie listet alle verfügbaren Optionen mit Erklärung auf. Von den mächtigen rund 24.000 Zeilen wird man schnell erschlagen. Ich habe daher die aus meiner Sicht wichtigsten herausgesucht, um ein Vanilla Testsystem zu erstellen.

### Allgemeines
# Verhindert weniger wichtige Nachfragen
# https://www.debian.org/releases/sarge/s390/ch05s02.html.en
# https://preseed.debian.net/debian-preseed/bullseye/amd64-main-full.txt
d-i debconf/priority string critical
# Deaktiviert die Meldung am Ende, dass die Installation abgeschlossen wurde und man neu starten kann
d-i finish-install/reboot_in_progress note

# Gibt an, ob Infos zum Nutzungsverhalten (installierte/verwendete Software) an Debian gesendet werden
popularity-contest popularity-contest/participate boolean false
# Proprietaere Firmware laden (falls es zu Hardwareproblemen kommt)
#d-i hw-detect/load_firmware boolean true

### Lokalisierung
d-i debian-installer/locale string de_DE
# Keymap setzen reicht nicht, layout/variantcode hilft ebenfalls nicht: https://groups.google.com/g/linux.debian.bugs.dist/c/XYcrRjLwpQM
d-i keyboard-configuration/variant select Deutschland
d-i keyboard-configuration/xkb-keymap select de

d-i clock-setup/utc boolean true
d-i tzdata/Areas select Europe
tzdata/Zones/Europe select Berlin
d-i time/zone string Europe/Berlin

### Partitionierung
# Grub wird automatisch auf den MBR installiert, wenn kein anderes OS vorhanden ist (sicher)
d-i grub-installer/only_debian boolean true
# MBR installation ebenfalls wenn andere OS vorhanden sind (koennte dazu fuehren, dass diese nicht mehr booten)
#d-i grub-installer/with_other_os boolean true
# Verhindert, dass grub alternativ fragt, wo er installiert werden soll
#d-i grub-installer/bootdev string /dev/sda
# Fuer die vollautomatische Partitionierung (falls unten aktiv) - Beispiel Lenovo Tiny mit NVMe-SSD
# VirtualBox -> /dev/sda, KVM -> /dev/vda
#d-i partman-auto/disk string /dev/nvme0n1

# Fuer lvm 'lvmcfg/vgdelete_confirm', 'partman-lvm/confirm' und 'partman-lvm/confirm_nooverwrite' setzen
# Siehe https://www.debian.org/releases/stable/s390x/apbs04.de.html Abschnitt B.4.7.1.
d-i partman-auto/method string regular
# Alle Daten auf einer Partition (mit 'home' wird das Home-Verzeichnis auf eine eigene Partition gelegt)
d-i partman-auto/choose_recipe select atomic

# Komplett automatisiert ohne Bestaetigung fuer alle Partitionierungsmethoden (Mit Vorsicht verwenden!)
# d-i partman/choose_partition select finish
# d-i partman/confirm boolean true
# d-i partman/confirm_nooverwrite boolean true
# d-i partman-partitioning/confirm_write_new_label boolean true
# d-i partman-md/confirm boolean true
# d-i partman-md/deleteverify boolean true
# d-i lvmcfg/vgdelete_confirm boolean true
# d-i partman-lvm/vgdelete_confirm boolean true
# d-i partman-lvm/device_remove_lvm boolean true
# d-i partman-lvm/confirm boolean true
# d-i partman-lvm/confirm_nooverwrite boolean true

### Software
d-i mirror/country string manual
d-i mirror/http/hostname string ftp2.de.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

# Aktiviert Spiegelserver abseits der Sicherheitsupdates per Netzwerk statt Image
d-i apt-setup/use_mirror boolean true
d-i apt-setup/disable-cdrom-entries boolean true
# Aktiviert offizielle, aber unfreie Repositorys: https://wiki.debian.org/SourcesList
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true

# Vorinstallierte Software
# Programmgruppe kann festlegen, ob z.B. Headless oder eine bestimmte Desktopumgebung (xfce-desktop, kde-desktop usw) vorinstalliert werden soll (siehe B.4.10)
tasksel tasksel/first multiselect standard, ssh-server
#tasksel tasksel/first multiselect standard, gnome-desktop

d-i pkgsel/install-language-support boolean true
d-i pkgsel/update-policy select Install security updates automatically
# Alle Pakete automatisch aktualisieren
d-i pkgsel/upgrade select full-upgrade
d-i pkgsel/include string openssh-server git vim htop

# Stdout Weiterleitungen funktionieren in in-target nicht ohne --pass-stdout
# Siehe https://askubuntu.com/a/1248987/650986 und https://serverfault.com/questions/390122/how-do-i-pipe-commands-together-in-a-debian-preseed-file
d-i preseed/late_command string \
    in-target sudo -u u-labs bash -c "cd /home/u-labs/; mkdir .fzf; cd .fzf; git clone https://github.com/junegunn/fzf.git .; bash ./install --all"; \
    in-target --pass-stdout bash -c "echo 'u-labs ALL=NOPASSWD:ALL' > /etc/sudoers.d/u-labs"; \
    in-target update-alternatives --set editor /usr/bin/vim.basic

### Benutzerkonten
d-i passwd/username string u-labs
d-i passwd/user-fullname string u-labs
d-i passwd/user-uid string 1000
d-i passwd/user-password password u-labs
d-i passwd/user-password-again password u-labs
# root
d-i passwd/root-password password u-labs
d-i passwd/root-password-again password u-labs

# Fuer Testsysteme kann die Policy strikter PWs abgeschaltet werden
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false

### Netzwerk
d-i netcfg/enable boolean true
d-i netcfg/choose_interface select auto
d-i netcfg/hostname string vdebian01

Beim Partitionieren habe ich die destruktiven Einstellungen mit einer vorangestellten Raute # auskommentiert und somit deaktiviert – dadurch fragt euch der Assistent danach. Sie würden Debian automatisch ohne jegliche Nachfrage auf dem angegebenen Laufwerk installieren und löschen sämtliche vorhandenen Partitionen. Gerade für Testinstallationen kann das hilfreich sein, da die Partitionierung dort meist ohnehin unwichtig ist. Allerdings würde ich dies entsprechend kennzeichnen und niemals in Initrd integrieren: Ein so präparierter USB-Stick liegt später ein paar Monate herum, ihr möchtet ihn nutzen, wisst aber evtl. nicht mehr genau, was verändert wurde. Oder gebt den Stick an jemand anderen weiter. Das kann ins Auge gehen, wenn er auf einem wichtigen System eingesetzt wird! Dazu später mehr.

Ihr könnt die Datei als Grundlage verwenden und ggf. verändern. Zum Anpassen sind für die meisten wahrscheinlich in erster Linie folgende Einstellungen interessant:

  • d-i pkgsel/include installiert APT-Pakete automatisch, mehrere mit Leerzeichen getrennt. In meinem Beispiel wird der OpenSSH-Server installiert, wodurch das System per SSH im Netzwerk erreichbar ist. Dazu die Werkzeuge git, vim und top.
  • Für komplexere oder zusätzliche Dinge, die ihr anpassen möchtet, erlaubt d-i preseed/late_command die Ausführung von beliebigen Shell-Befehlen. Sollte als letztes Mittel genutzt werden, in diesem Beispiel etwa um das nützliche Tool fzf einzurichten.
  • In d-i passwd/ sind verschieden Eigenschaften enthalten, die sowohl das Root-Passwort festlegen, als auch ein zusätzliches Konto ohne besondere Privilegien anlegen.
  • d-i netcfg/hostname legt den Hostname fest, unter dem das System im Netzwerk erreichbar ist. Für den integrierten SSH-Server nützlich, da man so dynamische IPs per DHCL vergeben lassen kann.

Je nachdem, was ihr konkret machen möchtet, gibt es noch weit mehr, spezifischere Dinge. Wer etwa auf jedem System Docker benötigt, der könnte beispielsweise deren Paketquelle hinzufügen – auch so etwas ist möglich, ohne Bash-Befehle über late-command ausführen zu müssen. Auf einem Server soll möglicherweise ein RAID konfiguriert werden. So etwas würde den Rahmen des Beitrages bei weitem sprengen und kann bei Bedarf in den oben verlinkten Dokus nachgelesen werden. Hier liegt der Fokus auf eine häufig benötigte grundlegende Installation als Einstieg in die Thematik, ohne all zu viele speziellere Anforderungen.

Wie ihr die Datei benennt, bleibt bei den meisten Methoden euch überlassen. Initrd verlangt per Konvention nach preseed.cfg. Dieser Name macht Sinn und ist zu empfehlen, so lange es keine anderen Gründe (z.B. mehrere Dateien) gibt.

Die Datei und Netzwerk-Methode: preseed.cfg ohne Initrd auf dem USB-Stick oder Webserver

Dieser Weg entspricht der oben genannten Variante 2. Die Preseed-Datei wird auf dem USB-Stick platziert, am besten direkt im Wurzelverzeichnis – je nach Einbindung müsst ihr sonst später längere Pfade tippen. Der erste Schritt besteht darin, das ISO-Abbild zu entpacken, unsere Preseed-Datei (preseed.cfg genannt) dort hinein zu kopieren und aus dem gesamten Ordner ein neues Abbild zu erstellen. Außerdem lege ich zugleich ein hybrides ISO an, damit es von USB-Sticks genutzt werden kann – dies ist für die reine Nutzung in VMs wie zuvor erwähnt nicht nötig.

mkdir vanilla-iso new-iso

mount -o loop debian-11.6.0-amd64-netinst.iso vanilla-iso
cp -rT vanilla-iso/ new-iso/
umount vanilla-iso

cp preseed.cfg new-iso
genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o preseed-debian-11.6.iso new-iso

# Optional, falls das Image nur fuer VMs genutzt wird
isohybrid preseed-debian-11.6.iso

rm -rf vanilla-iso new-iso

Der händische Weg zur Automatisierung

Im gleichen Verzeichnis liegt nun die entstandene Datei preseed-debian-11.6.iso, von der wir nun booten. Zum Verständnis schauen wir uns zunächst den manuellen Weg an. Dazu öffnet man die erweiterten Optionen (Advanced Options) und wählt dort Automated install. Die Navigation erfolgt mit den Pfeiltasten, zur Auswahl wird [ENTER] gedrückt.

Da bei dieser Variante nichts automatisch geladen wird, müssen wir dem Assistenten mitteilen, wo er die Datei erwarten kann. Wie man an den Beispielen erkennt, sind hier sowohl lokale Pfade (mit file:/// Präfix) möglich, als auch HTTP-URLs auf einem Webserver. Unsere Preseed-Datei liegt im Wurzelverzeichnis des Sticks, dieser ist in der Umgebung unter /cdrom gemountet.

Ohne eine automatisch geladene Vorkonfiguration, die das ändert, haben wir allerdings das US-Amerikanische Tastaturlayout – das Eingeben von Sonderzeichen wie Doppelpunkt oder Slash ist daher weniger komfortabel. Abhilfe schafft ein Blick auf eine solche Tastatur, die sich bei den Sonderzeichen erheblich von der Deutschen unterscheidet. Zur Fehlersuche ist es übrigens hilfreich, sich zumindest die wichtigsten Tasten zu merken:

  • Das Minus – liegt auf ß
  • Slash / auf –
  • Doppelpunkt : auf ä (mit Shift)

Damit lässt sich der Pfad file:///cdrom/preseed.cfg eingeben. Nach dem Bestätigen mit [ENTER] wird die Installation gestartet – je nachdem, was ihr in der Datei konfiguriert habt, erfolgt die weitere Installation vollautomatisch oder teilautomatisch.

Komfortabler: Eigene Einträge im Installations-Menü

Während der vorherige Weg zum Verständnis der Funktionsweise nützlich ist, finde ich ihn in der Anwendung unschön: Man muss mit US-Layout den Pfad angeben und diesen genau kennen. Hat man mehrere Dateien, also erst mal eine Konsole öffnen, um nachzuschauen. Meine Empfehlung ist daher, das Menü anzupassen. Wie dies funktioniert, hängt von der Architektur ab. Bei Intel X86 kommt Isolinux als Bootloader zum Einsatz. Das erweiterte Menü, in das die Einträge am besten passen, ist in isolinux/adtxt.cfg konfiguriert. Der Aufbau wird schnell klar, wenn man sich etwa die Automatische Installation anschaut:

label auto
	menu label ^Automated install
	kernel /install.amd/vmlinuz
	append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet 

Es gibt ein internes Label und ein zweites zur Anzeige im Menü. Darunter folgt der zu ladende Kernel mit dessen Parametern. Solch einen Eintrag können wir duplizieren, die Kernel-Parameter ergänzen sowie eine treffende Bezeichnung ergänzen. Unser eigener Eintrag erscheint dadurch unter dem von Debian standardmäßig vorhandenem Automated Install und heißt stattdessen Automatic – DESTRUCTIVE. Dies kann mit weiteren Preseed-Datei wiederholt werden, um mehrere Umgebungen/Varianten abzubilden.

cat >> new-iso/isolinux/adtxt.cfg <<EOF
label auto-wipe
	menu label ^Automatic - DESTRUCTIVE
	kernel /install.amd/vmlinuz
	append auto=true priority=critical vga=788 file=/cdrom/preseed.cfg initrd=/install.amd/initrd.gz --- quiet 
EOF

Zum praktischen Einsatz bietet es sich an, die Befehle in einem Skript mit entsprechenden Variablen zu bündeln. Dies kann zudem Aufräumarbeiten vornehmen, wie etwa das temporäre Arbeitsverzeichnis entfernen.

#!/bin/bash
isoIn=debian-11.6.0-amd64-netinst.iso
isoOut=preseed-${isoIn}

mkdir vanilla-iso new-iso
sudo mount -o loop $isoIn vanilla-iso
sudo cp -rT vanilla-iso/ new-iso/
sudo umount vanilla-iso

cp preseed.cfg new-iso
cat >> new-iso/isolinux/adtxt.cfg <<EOF
label auto-wipe
	menu label ^Automatic - DESTRUCTIVE
	kernel /install.amd/vmlinuz
	append auto=true priority=critical vga=788 file=/cdrom/preseed.cfg initrd=/install.amd/initrd.gz --- quiet
EOF

sudo genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o $isoOut new-iso

# Optional, falls das Image nur fuer VMs genutzt wird
sudo isohybrid $isoOut

sudo rm -rf new-iso vanilla-iso

Einfügen der Preseed-Datei in Initrd (Variante 1)

Die zuerst genannte Methode behandeln wir zum Schluss, da sie aus meiner Sicht die Schlechteste ist. Werfen wir vor der Umsetzung einen Blick auf die Funktion: Initrd ist das Abbild eines kompletten Dateisystems, welches beim Booten in den Arbeitsspeicher geladen wird. Es enthält Dateien, die während des Starts vom Linux-Kernel benötigt werden. Im ISO-Abbild ist es als Archiv in install.amd/initrd.gz zu finden. Darin wird die Datei preseed.cfg automatisch beim Booten geladen, sofern sie existiert – und zwar noch vor dem Assistenten. Schlussendlich ist der Installations-Assistent von Debian ein kleines GNU/Linux-System.

Zusätzlich zu den Schritten der vorherigen Varianten (ISO entpacken, neu erstellen usw) muss hierbei die preseed.cfg nicht nur in das Wurzelverzeichnis (bzw. streng genommen in einen frei wählbaren Pfad darin) kopiert werden. Sondern die Datei wird zu initrd.gz hinzugefügt. Da sich im Abbild eine Datei md5sum.txt mit den Prüfsummen aller Dateien befindet, sollten wir diese zudem aktualisieren. Sonst wird das Archiv ggf. fälschlicherweise als korrupt erkannt, obwohl dies letztendlich auf unsere bewussten Veränderungen zurückzuführen ist.

Das vorherige Skript kann als Grundlage genutzt werden. Den Block, der die Preseed-Datei in new-iso kopiert und anschließend noch den Menüeintrag anlegt, ersetzen wir:

gunzip new-iso/install.amd/initrd.gz
echo preseed.cfg | cpio -H newc -o -A -F new-iso/install.amd/initrd
gzip new-iso/install.amd/initrd
cd new-iso
find -follow -type f ! -name md5sum.txt -print0 | xargs -0 md5sum > md5sum.txt
cd ..
chmod a-w new-iso/md5sum.txt

Ruft man in den erweiterten Optionen nun Automatic Install auf, lädt Initrd unsere Anweisungen automatisch und ohne weiteres Zutun – der oben gezeigte Dialog zur Dateiauswahl entfällt. Das Problem, was ich dabei allerdings sehe: Es gibt keine Transparenz darüber. Wir sehen nicht, dass überhaupt etwas automatisiert wurde – außer, die Installation läuft komplett ohne Interaktion durch oder es fallen fehlende Schritte auf. Noch schlimmer wird es, wenn dort destruktive Dinge (z.B. für ein Testsystem) eingerichtet sind, die versehentlich in einer produktiven Umgebung laufen. Dass etwas vorkonfiguriert wurde, sieht man nur, wenn die Initrd zuvor geprüft wird – was vor allem dann nicht geschieht, wenn man das nicht (mehr) weiß. Für diesen Zweck ist das also mindestens fehleranfällig bis gefährlich.

Darüber hinaus gibt es noch einen weiteren praktischen Nachteil: Das Initrd-Archiv befindet sich im ISO. Mehrere Konfigurationen sind somit nur über einen Multi-Boot Stick möglich, auf dem Debian dadurch unnötigerweise mehrfach liegt. Mit der vorherigen Variante lassen sich Installations-Abbild und Preseed-Datei viel besser trennen. Wahlweise liegen diese unabhängig voneinander auf dem Stick, oder gleich auf einem Webserver.

Tipps zur Fehlersuche

Generell ist es eine gute Idee, zumindest für die Tests das Netzwerk-Abbild zu nehmen. Es ist kleiner, wodurch ihr schneller mit dem Testen anfangen könnt. Lediglich, wenn der Fehler nach dem Herunterladen der Pakete auftritt sowie ihr ggf. noch dazu eine langsame Internetverbindung verwendet, kann das vollständige Abbild schneller sein.

Sollte ein Fehler auftreten, könnt ihr mit der Tastenkombination [ALT] + [F4] zur Konsolenausgabe wechseln, die oft weitere Informationen enthält.

Teils hilft auch [ALT] und Pfeiltaste nach links. Mit [ALT] + Pfeiltaste rechts gelangt man wieder zurück zur Fehlerseite. Sollte das nicht funktionieren, [ALT] und die F-Tasten [F1] bis [F7] ausprobieren. Das komplette Protokoll wird in /var/log/syslog geschrieben, das man über den Eintrag zum öffnen einer Shell im Installations-Menü einsehen kann. Die Werkzeuge sind dort allerdings beschränkt, da in der minimalen Umgebung nützliche Werkzeuge wie z.B. less Fehlen und der Platz durch die geringe Auflösung begrenzt ist.

Die wichtigsten Tastenkombinationen, welche in meinem Test funktioniert haben:

  • ALT + F4 -> Logs öffnen
  • ALT + F2 -> Konsole
  • ALT + F1 -> Zurück zum Installations-Assistenten

Fazit

Der Weg über Initrd konnte mich nicht überzeugen – das ist aber auch gar nicht nötig, da Preseed flexibel genug ist, insgesamt drei Bereitstellungsmöglichkeiten anzubieten. So kann man sich den für die eigene Situation bestmöglich passenden aussuchen. Die zur Verfügung stehenden Konfigurationseigenschaften sind umfangreich. Nicht nur der Installations-Assistent lässt sich damit auf Wunsch komplett automatisieren. Sondern auch weitere Aufgaben, wie etwa die Konfiguration zusätzlicher Software. Unabhängig davon, aus welchen Gründen man Debian öfters installiert: Dies ist definitiv eine Erleichterung, die sowohl viel Arbeit und Zeit spart, als auch die Konsistenz durch Reproduzierbarkeit sicherstellt. Mit der Dokumentation tut man sich zudem leichter, ein großer Teil davon entsteht automatisch.

Weiterführende Inhalte

Leave a Reply