B.4. Inhalt der Voreinstellungsdatei (für Trixie)

Die Konfigurationsfragmente aus diesem Abschnitt sind auch als Beispiel in Form einer Voreinstellungsdatei unter https://d-i.debian.org/manual/example-preseed.txt verfügbar.

Beachten Sie, dass dieses Beispiel auf einer Installation für die Intel x86-Architektur basiert. Wenn Sie auf einer anderen Architektur installieren, könnten einige der Beispiele (wie die Tastaturauswahl und die Bootloader-Installation) nicht relevant sein und müssen durch für Ihre Architektur passende debconf-Einstellungen ersetzt werden.

Details darüber, wie die verschiedenen Debian-Installer-Komponenten funktionieren, finden Sie in Abschnitt 6.3, „Die einzelnen Komponenten“.

B.4.1. Lokalisierung

Bei einer normalen Installation sind die Fragen, die als allererstes gestellt werden, die über die Lokalisierung, daher können diese Werte nur über initrd oder Kernel-Befehlszeile voreingestellt werden. Die Installation im Auto-Modus (Abschnitt B.2.3, „Auto-Modus“) enthält die Einstellung auto-install/enable=true (normalerweise über den Alias auto). Diese verzögert die Fragen zur Lokalisierung, so dass diese dann über jegliche Methode voreingestellt werden können.

Das Gebietsschema (Locale) kann verwendet werden, um sowohl Sprache als auch Land anzugeben. Es kann jede Kombination aus einer vom debian-installer unterstützten Sprache und einem anerkannten Land (jeweils als Kürzel) enthalten. Falls die angegebene Kombination kein gültiges Gebietsschema bildet, wählt der Installer automatisch ein Gebietsschema, das für die gewählte Sprache passend ist. Um das Gebietsschema als Boot-Parameter festzulegen, nutzen Sie locale=de_DE.UTF-8 (Beispiel de_DE: deutsch - Deutschland).

Obwohl diese Methode sehr einfach zu nutzen ist, erlaubt sie nicht das Voreinstellen aller möglichen Kombinationen aus Sprache, Land und Gebietsschema[20]. Daher können diese Werte auch individuell voreingestellt werden. Sprache und Land können auch als Boot-Parameter angegeben werden.

# Das Voreinstellen des Gebietsschemas (Locale) setzt gleichzeitig Sprache,
# Land und Standard-Gebietsschema:
d-i debian-installer/locale string de_DE.UTF-8

# Die Werte können auch individuell voreingestellt werden, um flexibler
# zu sein:
#d-i debian-installer/language string en
#d-i debian-installer/country string NL
#d-i debian-installer/locale string en_GB.UTF-8
# Geben Sie optional zusätzliche Gebietsschemata an, die generiert werden
# sollen:
#d-i localechooser/supported-locales multiselect en_US.UTF-8, nl_NL.UTF-8

Die Tastaturkonfiguration besteht aus der Auswahl der Tastaturbelegung und (bei nicht-lateinischen Tastaturbelegungen) einer Umschalttaste, um zwischen der nicht-lateinischen und der US-Tastaturbelegung hin- und herschalten zu können. Während der Installation sind nur grundlegende Tastaturbelegungsvarianten verfügbar. Erweiterte Varianten sind später im installierten System nutzbar, verwenden Sie dpkg-reconfigure keyboard-configuration.

# Auswahl der Tastatur:
d-i keyboard-configuration/xkb-keymap select de
# Keine Umschalttaste:
# d-i keyboard-configuration/toggle select No toggling

Um die Konfiguration der Tastatur zu überspringen, stellen Sie für keymap den Wert skip-config ein. Dies bewirkt, dass die Tastaturbelegung des Kernels weiter verwendet wird.

B.4.2. Sprachsynthesizer

Wenn Sie mit Software-Sprachausgabe installieren (d.h. speakup.synth=soft ist auf der Kernel-Befehlszeile angegeben), kann die verwendete Soundkarte und Stimme voreingestellt werden.

Da die Sprachausgabe sehr früh im Installationsprozess gestartet wird, istdie Voreinstellung hier nur über die initrd oder die Kernel-Befehlszeile möglich.

Das Voreinstellen von espeakup/voice bewirkt auch, dass für das zu installierende System ebenfalls Sprachausgabe-Funktionalität eingerichtet wird. Dies erfolgt auch, selbst wenn die Sprachausgabe im Installer letztlich gar nicht genutzt wird.

# Welche ALSA-Karte für die Software-Sprachausgabe genutzt wird.
# Dies kann eine Zahl ab 0 aufwärts sein, oder eine ID, die Sie finden können in
# /sys/class/sound/card*/id:
#d-i espeakup/card string 0

# Welche Stimme aus espeak-ng genutzt wird:
#d-i espeakup/voice string en

B.4.3. Netzwerkkonfiguration

Die Voreinstellung der Netzwerkkonfiguration funktioniert natürlich nicht, wenn Sie Ihre Voreinstellungsdatei vom Netzwerk laden, aber es ist toll, wenn Sie von einem optischen Datenträger oder USB-Stick booten. Sie können jedoch auch Netzwerkkonfigurations-Parameter automatisieren, wenn Sie die Voreinstellungsdatei per Netzwerk laden, und zwar per Kernel-Parameter.

Falls Sie beim Booten per Netzwerk eine bestimmte Netzwerkschnittstelle auswählen müssen, bevor eine Voreinstellungsdatei vom Netzwerk geladen wurde, benutzen Sie einen Boot-Parameter wie interface=eth1.

Obwohl das Voreinstellen der Netzwerkkonfiguration normalerweise nicht möglich ist, wenn Sie Voreinstellung über Netzwerk benutzen (mittels preseed/url), können Sie den folgenden Hack verwenden, um diese Einschränkung zu umgehen, wenn Sie zum Beispiel eine statische Adresse für die Netzwerk-Schnittstelle setzen möchten. Der Hack erzwingt, dass die Netzwerkkonfiguration erneut abläuft, nachdem die Voreinstellungsdatei geladen wurde. Dazu wird ein preseed/run-Script erzeugt mit den folgenden Befehlen:

kill-all-dhcp; netcfg

Die folgenden debconf-Variablen sind für die Netzwerkkonfiguration relevant:

# Die Netzwerkkonfiguration vollständig überspringen. Dies ist für CD-ROM-
# Installationen auf Rechnern ohne Netzwerk-Hardware nützlich, wo die Fragen
# über das Netzwerk, die Warnungen und das lange Warten auf die Zeitüber-
# schreitungen sehr lästig wären:
#d-i netcfg/enable boolean false

# netcfg versucht nach Möglichkeit, eine Netzwerkschnittstelle zu wählen,
# die bereits Verbindung hat (Netzwerkkabel gesteckt, aktive Gegenstelle). 
# Diese Zeile vermeidet, dass eine Liste angezeigt wird, wenn mehr als
# eine Schnittstelle verfügbar ist:
d-i netcfg/choose_interface select auto

# Um stattdessen eine bestimmte Schnittstelle vorzugeben:
#d-i netcfg/choose_interface select eth1

# Um eine andere Timeout-Zeit für die Verbindungserkennung festzulegen
# (Standard ist 3 Sekunden); Werte werden als Sekunden interpretiert:
#d-i netcfg/link_wait_timeout string 10

# Wenn Sie einen langsamen DHCP-Server haben und der Installer läuft in eine
# Zeitüberschreitung, während er auf ihn wartet, könnte dies nützlich sein:
#d-i netcfg/dhcp_timeout string 60
#d-i netcfg/dhcpv6_timeout string 60

# Automatische Netzwerkkonfiguration ist die Standardvorgehensweise.
# Wenn Sie es vorziehen, das Netzwerk manuell zu konfigurieren, entfernen
# Sie hier das Kommentarzeichen und ebenso bei den Zeilen für die statische
# Netzwerkkonfiguration unten:
#d-i netcfg/disable_autoconfig boolean true

# Falls Sie möchten, dass die Voreinstellungsdatei sowohl auf Systemen mit
# DHCP-Server als auch ohne einen solchen funktioniert, entfernen Sie hier
# die Kommentarzeichen sowie auch unten bei der statischen
# Netzwerkkonfiguration:
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually

# Statische Netzwerkkonfiguration.
#
# IPv4-Beispiel:
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/confirm_static boolean true
#
# IPv6-Beispiel:
#d-i netcfg/get_ipaddress string fc00::2
#d-i netcfg/get_netmask string ffff:ffff:ffff:ffff::
#d-i netcfg/get_gateway string fc00::1
#d-i netcfg/get_nameservers string fc00::1
#d-i netcfg/confirm_static boolean true

# Bedenken Sie, dass jeder Rechner- und Domänenname, der per DHCP
# zugewiesen wird, Vorrang hat vor den hier angegebenen. Allerdings
# bewirken diese Zeilen, dass keine Fragen angezeigt werden, auch wenn
# Werte per DHCP empfangen werden:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain

# Wenn Sie einen Rechnernamen erzwingen möchten, unabhängig davon, was der
# DHCP-Server zurückgibt oder wie der Reverse-DNS-Eintrag für die IP-Adresse
# lautet, entfernen Sie bei der folgenden Zeile das Kommentarzeichen und
# passen Sie sie an:
#d-i netcfg/hostname string somehost

# Den lästigen WEP-Schlüssel-Dialog unterdrücken:
d-i netcfg/wireless_wep string
# Der verrückte DHCP-Rechnername, den einige ISP als eine Art Passwort nutzen:
#d-i netcfg/dhcp_hostname string radish

# Wenn Sie die Suche nach Firmware vollständig deaktivieren möchten, (um
# also keine Firmware-Dateien oder -Pakete zu verwenden, die auf dem
# Installations-Image vorhanden sein könnten):
#d-i hw-detect/firmware-lookup string never

# Falls nicht-freie Firmware benötigt wird für Netzwerk- oder andere
# Hardware, können Sie den Installer so konfigurieren, dass immer versucht
# wird, die Firmware zu laden, ohne Nachfrage (true). Oder Sie ändern dies
# auf false, wenn überhaupt nicht danach gefragt werden soll:
#d-i hw-detect/load_firmware boolean true

Bitte beachten Sie, dass netcfg die Netzmaske automatisch ermittelt, falls netcfg/get_netmask nicht voreingestellt ist. In diesem Fall muss die Variable für automatische Installationen als seen markiert werden. Ähnlich dazu wird netcfg auch eine geeignete Gateway-Adresse wählen, falls netcfg/get_gateway nicht voreingestellt wird. Es gibt die spezielle Möglichkeit, netcfg/get_gateway auf none zu setzen, um festzulegen, dass kein Gateway benutzt werden soll.

B.4.4. Netzwerk-Konsole

# Nutzen Sie die folgenden Einstellungen, wenn Sie die Komponente "Netzwerk-
# Konsole" für eine entfernte Installation per SSH verwenden möchten. Dies
# macht nur Sinn, wenn Sie vorhaben, den verbleibenden Rest der Installation
# manuell durchzuführen:
#d-i anna/choose_modules string network-console
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
#d-i network-console/password password r00tme
#d-i network-console/password-again password r00tme

Weitere Informationen zur Netzwerk-Konsole finden Sie in Abschnitt 6.3.10, „Installation über die Netzwerk-Konsole“.

B.4.5. Einstellungen für den Spiegel-Server

Abhängig von der Installationsmethode, die Sie verwenden, kann ein Spiegel-Server sowohl dazu genutzt werden, zusätzliche Komponenten des Installers und das Basissystem herunterzuladen als auch um die /etc/apt/sources.list für das zu installierende System einzurichten.

Der Parameter mirror/suite beeinflusst die Paketquellen für das zu installierende System.

Der Parameter mirror/udeb/suite beeinflusst die Paketquellen für den Installer. Es ist nur nützlich, dies einzustellen, wenn aktuell Komponenten des Installers über das Netzwerk geladen werden; dieser Wert sollte mit dem übereinstimmen, der genutzt wurde, um die initrd, die Sie für Ihre Installationsmethode nutzen, zu bauen. Normalerweise wird der Installer automatisch den korrekten Wert verwenden und es sollte daher keinen Grund geben, dies manuell festzulegen.

# Spiegel-Server-Protokoll:
# Wenn Sie FTP wählen, muss mirror/country nicht gesetzt werden.
# Vorgabewert für das Protokoll des Spiegel-Servers: http.
#d-i mirror/protocol string ftp
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

# Distributionszweig von Debian, den Sie installieren möchten:
#d-i mirror/suite string testing
# Distributionszweig, der genutzt wird, um Installer-Komponenten zu
# laden (optional):
#d-i mirror/udeb/suite string testing

B.4.6. Einrichtung von Benutzerzugängen

Das Passwort für den Superuser-Zugang (root) sowie Name und Passwort des ersten regulären Benutzers können voreingestellt werden. Für die Passwörter können Sie entweder Klartext-Werte oder crypt(3)-Hashes verwenden.

[Warnung] Warnung

Bedenken Sie, dass die Voreinstellung von Passwörtern nicht ganz sicher ist, da jeder, der Zugang zur Voreinstellungsdatei hat, Kenntnis von den Passwörtern erlangen könnte. Hier verschlüsselte Hashes für die Passwörter zu verwenden, wird als sicher angesehen, solange keine schwachen Algorithmen wie DES oder MD5 zum Einsatz kommen, da diese die Gefahr von Brute-Force-Attacken bergen. Es wird empfohlen, SHA-256 oder SHA512 zu benutzen.

# Das Anlegen des Root-Zugangs abbrechen (der normale Benutzer
# bekommt dann die Möglichkeit, sudo zu benutzen):
#d-i passwd/root-login boolean false
# Alternativ dazu können Sie auch das Anlegen eines normalen
# Benutzers abbrechen:
#d-i passwd/make-user boolean false

# Root-Passwort, entweder als Klartext ... :
#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
# ... oder verschlüsselt als crypt(3)-Hash:
#d-i passwd/root-password-crypted password [crypt(3)-Hash]

# Um einen regulären Benutzerzugang zu erstellen:
#d-i passwd/user-fullname string Max Mustermann
#d-i passwd/username string maximus
# Passwort des regulären Benutzers, entweder als Klartext ... :
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
# ... oder verschlüsselt als crypt(3)-Hash:
#d-i passwd/user-password-crypted password [crypt(3)-Hash]
# Den ersten Benutzer mit der angegebenen Benutzer-ID (UID) erstellen
# statt mit der Standard-UID:
#d-i passwd/user-uid string 1010

# Der Benutzerzugang wird zu einigen Standard-Benutzergruppen hinzugefügt.
# Um dies zu überschreiben, benutzen Sie:
#d-i passwd/user-default-groups string audio cdrom video

Die Variablen passwd/root-password-crypted und passwd/user-password-crypted können auch mit ! als Wert voreingestellt werden. In diesem Fall wird der entsprechende Zugang deaktiviert. Dies könnte für den root-Zugang sinnvoll sein, vorausgesetzt natürlich, dass alternative Möglichkeiten vorhanden sind, um administrative Tätigkeiten oder root-Logins zu ermöglichen (z.B. per Authentifizierung mit SSH-Schlüssel oder per sudo).

Der folgende Befehl (aus dem Paket whois) kann verwendet werden, um einen SHA-512 basierten crypt(3)-Hash für ein Passwort zu generieren:

mkpasswd -m sha-512

B.4.7. Einrichtung von Uhr und Zeitzone

# Legt fest, ob die Hardware-(CMOS-)Uhr auf UTC eingestellt ist oder nicht:
d-i clock-setup/utc boolean true

# Sie können hier irgendeinen, für $TZ gültigen Wert eingeben; gültige
# Werte finden Sie in /usr/share/zoneinfo/:
d-i time/zone string Europe/Berlin

# Hier wird eingestellt, ob NTP benutzt wird, um während der Installation
# die Uhr zu stellen:
d-i clock-setup/ntp boolean true
# NTP-Server, der genutzt werden soll; der Standardwert sollte für die
# meisten Fälle passend sein:
#d-i clock-setup/ntp-server string ntp.example.com

B.4.8. Partitionierung

Die Möglichkeiten der Voreinstellung für die Partitionierung der Festplatte werden begrenzt durch das, was partman-auto unterstützt. Sie können wählen, entweder vorhandenen freien Platz auf der Platte zu partitionieren oder die komplette Platte. Das Layout der Disk kann durch ein vordefiniertes Rezept festgelegt werden, durch ein selbst erstelltes aus einer Rezeptdatei oder durch ein Rezept, das in der Vorkonfigurationsdatei enthalten ist.

Die Voreinstellung von fortgeschrittenen Partitionierungen unter Verwendung von RAID, LVM und Verschlüsselung ist möglich, jedoch nicht mit der vollständigen Flexibilität, die bei einer Installation ohne Voreinstellung möglich wäre.

Die Beispiele weiter unten bieten nur grundlegende Informationen über die Nutzung von Partitionierungsrezepten. Detailierte Informationen finden Sie in den Dateien partman-auto-recipe.txt und partman-auto-raid-recipe.txt, die in dem Paket debian-installer enthalten sind. Beide Dateien sind ebenfalls über das Quellcode-Repository des debian-installers verfügbar. Beachten Sie, dass die unterstützten Funktionalitäten abhängig von der Version variieren können.

[Warnung] Warnung

Die Erkennung der Festplatten hängt von der Reihenfolge ab, in der ihre Treiber geladen werden. Falls mehrere Platten im System existieren, achten Sie verstärkt darauf, dass Sie die richtige ausgewählt haben, bevor Sie die Voreinstellung nutzen.

B.4.8.1. Partitionierungsbeispiele

# Wenn das System freien Platz auf der Platte hat, können Sie festlegen, nur
# diesen Platz zu partitionieren. Folgendes zu setzen hat nur Auswirkungen,
# wenn partman-auto/method (weiter unten) nicht gesetzt ist:
#d-i partman-auto/init_automatically_partition select biggest_free

# Alternativ können Sie eine Festplatte angeben, die partitioniert werden
# soll. Falls das System nur eine einzige Festplatte enthält, wird der
# Installer diese standardmäßig verwenden, aber andernfalls muss der
# Gerätename der Platte im traditionellen Format (nicht devfs) angegeben
# werden (z.B. /dev/sda, nicht jedoch etwas wie /dev/discs/disc0/disc).
# Um z.B. die erste SCSI/SATA-Festplatte zu nutzen, kann die folgende Zeile
# verwendet werden:
#d-i partman-auto/disk string /dev/sda
# Zusätzlich müssen Sie angeben, welche Partitionierungsmethode genutzt werden
# soll. Derzeit verfügbare Methoden:
# - regular: gewöhnliche Partitionstypen für die jeweilige Architektur verwenden
# - lvm:     LVM verwenden, um die Platte zu partitionieren
# - crypto:  LVM mit einer verschlüsselten Partition verwenden
d-i partman-auto/method string lvm

# Sie können den Anteil des Platzes angeben, der für die LVM-Volume-Gruppe
# verwendet wird. Dies kann entweder eine Größenangabe mit Einheit sein
# (z.B. 20 GB), eine Prozentangabe des verfügbaren freien Speicherplatzes,
# oder das Schlüsselwort »max«.
d-i partman-auto-lvm/guided_size string max

# Falls eine der Festplatten, die automatisch partitioniert werden sollen,
# eine alte LVM-Konfiguration enthält, wird dem Benutzer normalerweise eine
# Warnung angezeigt. Diese kann aber durch Voreinstellung unterdrückt werden:
d-i partman-lvm/device_remove_lvm boolean true
# Das Gleiche gilt für bereits existierende Software-RAID-Arrays:
d-i partman-md/device_remove_md boolean true
# Ebenfalls für die Bestätigung, die LVM-Partitionen zu schreiben:
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true

# Sie können eines der vordefinierten Partitionierungsrezepte wählen:
# - atomic: alle Dateien in einer Partition
# - home:   separate /home-Partition
# - multi:  separate /home-, /var- und /tmp-Partitionen
d-i partman-auto/choose_recipe select atomic

# Oder erstellen Sie ein eigenes Rezept:
# Wenn Sie eine Möglichkeit haben, eine Rezeptdatei in die d-i-Umgebung zu
# bekommen, können Sie einfach darauf verweisen:
#d-i partman-auto/expert_recipe_file string /hd-media/recipe

# Falls nicht, können Sie auch ein ganzes Rezept in eine einzige (logische)
# Zeile packen. Dieses Beispiel erzeugt eine kleine /boot-Partition, eine
# Swap-Partition passender Größe und benutzt den Rest des Platzes für
# die root-Partition:
#d-i partman-auto/expert_recipe string                         \
#      boot-root ::                                            \
#              40 50 100 ext3                                  \
#                      $primary{ } $bootable{ }                \
#                      method{ format } format{ }              \
#                      use_filesystem{ } filesystem{ ext3 }    \
#                      mountpoint{ /boot }                     \
#              .                                               \
#              500 10000 1000000000 ext3                       \
#                      method{ format } format{ }              \
#                      use_filesystem{ } filesystem{ ext3 }    \
#                      mountpoint{ / }                         \
#              .                                               \
#              64 512 300% linux-swap                          \
#                      method{ swap } format{ }                \
#              .

# Das vollständige Rezeptformat ist in der Datei partman-auto-recipe.txt
# dokumentiert, die im Paket »debian-installer« enthalten oder im D-I-
# Quellcode-Repository verfügbar ist. Dort ist auch dokumentiert, wie
# erweiterte Einstellungen festgelegt werden, z.B. Dateisystem-Bezeichnungen,
# Volumegruppen-Namen etc., oder welche physischen Geräte in einer
# Volumegruppe enthalten sein sollen.

## Partitionieren für EFI
# Wenn Ihr System eine EFI-Partition benötigt, können Sie Zeilen wie diese
# zu Ihrem Rezept hinzufügen (als erstes Element im Rezept):
#               538 538 1075 free                              \
#                      $iflabel{ gpt }                         \
#                      $reusemethod{ }                         \
#                      method{ efi }                           \
#                      format{ }                               \
#               .                                              \
#
# Obiges Fragment ist passend für die amd64-Architektur; auf anderen
# Architekturen könnten die Details abweichen. Das Paket 'partman-auto'
# im D-I Quell-Repository enthält eventuell ein Beispiel, nach dem Sie sich
# richten können.

# Dies veranlasst partman, automatisch ohne Nachfrage zu partitionieren,
# vorausgesetzt, Sie haben mit einer der obigen Methoden festgelegt, wie
# partitioniert werden soll:
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# UEFI-Boot-Vorgang erzwingen ('BIOS-Kompatibilität' wird verworfen).
# Standardeinstellung: false.
#d-i partman-efi/non_efi_system boolean true
# Sicherstellen, dass eine GPT-Partitionstabelle verwendet wird -
# erforderlich für EFI:
#d-i partman-partitioning/choose_label select gpt
#d-i partman-partitioning/default_label string gpt

# Bei gewählter Festplattenverschlüsselung: das vorab durchzuführende
# Löschen der Partitionen überspringen:
#d-i partman-auto-crypto/erase_disks boolean false

B.4.8.2. Partitionierung mit RAID

Sie können auch Voreinstellung verwenden, um Partitionen auf einem Software-RAID einzurichten. Es werden RAID-Level 0, 1, 5, 6 und 10 unterstützt sowie die Einrichtung von degradierten Arrays und die Festlegung von Reserveplatten.

Wenn Sie RAID 1 verwenden, können Sie voreinstellen, dass grub auf allen Geräten im Verbund installiert wird; siehe Abschnitt B.4.12, „Installation des Bootloaders“.

[Warnung] Warnung

Bei dieser Art von automatisierter Partitionierung kann leicht etwas falsch laufen. Auch ist diese Installer-Komponente von den Entwicklern des debian-installer relativ wenig getestet worden. Die Verantwortung, die verschiedenen Rezepte richtig hinzubekommen (so dass sie Sinn machen und nicht miteinander kollidieren), liegt beim Benutzer! Schauen Sie in /var/log/syslog nach, wenn Probleme auftreten.

# Die Partitionierungsmethode sollte auf "raid" gesetzt werden:
#d-i partman-auto/method string raid
# Geben Sie die Festplatten an, die partitioniert werden sollen. Sie bekommen
# alle das gleiche Layout, dies wird also nur funktionieren, wenn alle
# Festplatten die gleiche Größe haben:
#d-i partman-auto/disk string /dev/sda /dev/sdb

# Als nächstes müssen Sie die zu nutzenden physischen Partitionen
# einrichten:
#d-i partman-auto/expert_recipe string \
#      multiraid ::                                         \
#              1000 5000 4000 raid                          \
#                      $primary{ } method{ raid }           \
#              .                                            \
#              64 512 300% raid                             \
#                      method{ raid }                       \
#              .                                            \
#              500 10000 1000000000 raid                    \
#                      method{ raid }                       \
#              .

# Als letztes muss noch angegeben werden, wie die vorher definierten Partitionen
# im RAID-Setup verwendet werden sollen. Denken Sie daran, die korrekten
# Partitionsnummern für die logischen Partitionen zu benutzen. Es werden die
# RAID-Level 0, 1, 5, 6 und 10 unterstützt; Geräte werden mittels »#« voneinander
# getrennt.
# Parameter sind:
# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \
#          <devices> <sparedevices>
# 
#d-i partman-auto-raid/recipe string \
#    1 2 0 ext3 /                    \
#          /dev/sda1#/dev/sdb1       \
#    .                               \
#    1 2 0 swap -                    \
#          /dev/sda5#/dev/sdb5       \
#    .                               \
#    0 2 0 ext3 /home                \
#          /dev/sda6#/dev/sdb6       \
#    .

# Weitere Informationen finden Sie in der Datei partman-auto-raid-recipe.txt,
# die im Paket »debian-installer« enthalten oder im D-I-Quellcode-Repository
# verfügbar ist.

# Dies veranlasst partman, automatisch ohne Nachfrage zu partitionieren:
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

B.4.8.3. Festlegen, wie Partitionen eingebunden werden

Normalerweise werden Dateisysteme unter Verwendung einer eindeutigen Kennung, dem Universally Unique Identifier (UUID) als Schlüssel eingebunden; auf diesem Wege ist es möglich, sie korrekt einzubinden, selbst wenn sich ihr Gerätename ändert. UUIDs sind allerdings lang und schwierig zu lesen, daher kann der Installer die Dateisysteme, falls Sie dies bevorzugen, auch basierend auf den traditionellen Gerätenamen einbinden oder aber basierend auf einem Label, das sie festlegen. Wenn Sie den Installer anweisen, die Einbindung über ein Label vorzunehmen, wird für alle Dateisysteme, die kein Label haben, trotzdem der UUID verwendet.

Für Geräte mit feststehenden Namen, wie zum Beispiel logischen LVM-Volumes, werden weiterhin die traditionellen Namen statt der UUIDs verwendet.

[Warnung] Warnung

Die traditionellen Gerätenamen können sich basierend auf der Reihenfolge, in der der Kernel die Geräte beim Booten erkennt, ändern, was dazu führen kann, dass das falsche Dateisystem eingebunden wird. Ähnlich dazu können bei den Labels Überschneidungen auftreten, wenn Sie eine neue Festplatte oder ein USB-Laufwerk anschließen, und wenn dies passiert, ist das Verhalten Ihres Systems beim Starten rein willkürlich.

# Standardeinstellung ist, mittels UUID einzubinden, Sie können aber auch
# "traditional" wählen, um die traditionellen Gerätenamen zu nutzen, oder
# "label", um die Einbindung per Dabeisystem-Label zu versuchen, wobei im
# Falle eines Fehlers hier die UUIDs als Ausweichlösung verwendet werden.
#d-i partman/mount_style select uuid

B.4.9. Installation des Basissystems

Es gibt momentan nicht viel, was für diesen Teil der Installation voreingestellt werden kann. Die einzigen gestellten Fragen betreffen die Installation des Kernels.

# APT konfigurieren, dass empfohlene (recommended) Pakete nicht automatisch
# installiert werden. Die Verwendung dieser Option kann zu einem
# unvollständigen System führen und sollte nur von sehr erfahrenen
# Anwendern genutzt werden:
#d-i base-installer/install-recommends boolean false

# Das Kernel-Image-(Meta-)Paket, das installiert werden soll; "none" kann
# genutzt werden, wenn kein Kernel installiert werden soll:
#d-i base-installer/kernel/image string linux-image-686

B.4.10. Konfiguration von Apt

Die Konfiguration von /etc/apt/sources.list und grundlegenden Einstellungsoptionen ist voll automatisiert, basierend auf der Installationsmethode und Antworten auf frühere Fragen. Sie können optional weitere (lokale) Paketquellen (Repositories) hinzufügen.

# Wählen Sie, ob Sie zusätzliche Installationsmedien scannen möchten.
# (Standardwert: false)
d-i apt-setup/cdrom/set-first boolean false
# Sie können wählen, ob Sie nicht-freie Firmware installieren möchten:
#d-i apt-setup/non-free-firmware boolean true
# Sie können wählen, ob Sie Software aus dem "non-free"- oder
# "contrib"-Zweig installieren möchten:
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
# Entfernen Sie bei der folgenden Zeile das Kommentarzeichen, wenn Sie in
# der sources.list des zu installierenden Systems keinen aktiven Eintrag
# für ein DVD-/BD-Installations-Image haben möchten.
# (Einträge für netinst- oder CD-Images werden grundsätzlich nicht
# aktiviert, unabhängig von dieser Einstellung.)
#d-i apt-setup/disable-cdrom-entries boolean true
# Entfernen Sie das folgende Kommentarzeichen, wenn Sie keinen Netzwerk-
# Spiegel-Server verwenden möchten:
#d-i apt-setup/use_mirror boolean false
# Wählen Sie, welche Update-Dienste genutzt werden sollen; legen Sie die
# zu verwendenden Spiegel-Server fest. Die hier angegebenen Werte sind die
# normalen Standardwerte:
#d-i apt-setup/services-select multiselect security, updates
#d-i apt-setup/security_host string security.debian.org

# Zusätzliche Paketquellen, "local[0-9]" verfügbar:
#d-i apt-setup/local0/repository string \
#       http://local.server/debian stable main
#d-i apt-setup/local0/comment string local server
# deb-src-Zeilen aktivieren:
#d-i apt-setup/local0/source boolean true
# URL zum öffentlichen Schlüssel der lokalen Quelle; Sie müssen einen
# Schlüssel bereitstellen, oder apt wird sich über die nicht-autorisierte
# Quelle beschweren und die Zeile in der sources.list wird auskommentiert
# bleiben und nicht genutzt:
#d-i apt-setup/local0/key string http://local.server/key
# Oder Sie können den Schlüssel in-line bereitstellen, indem Sie die Inhalte
# der Schlüsseldatei base64-kodiert ablegen (mit "base64 -w0") und hier
# angeben:
#d-i apt-setup/local0/key string base64://LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCi4uLgo=
# Der Inhalt der Schlüsseldatei wird überprüft, um festzustellen, ob er
# ASCII-geschützt ist. Wenn dies der Fall ist, wird die Datei mit einer
# ".asc"-Endung abgespeichert, andernfalls bekommt sie eine ".gpg"-Endung.
# Das Format "keybox database" wird derzeit nicht unterstützt (schauen Sie
# dazu in apt-setup's Quellcode).

# Standardmäßig verlangt der Installer, dass Paketquellen mittels
# bekannter GPG-Schlüssel autorisiert werden. Folgendes kann verwendet
# werden, um das zu deaktivieren. WARNUNG: unsicher, nicht empfohlen.
#d-i debian-installer/allow_unauthenticated boolean true

# Entfernen Sie hier das Kommentarzeichen, um multiarch-Konfiguration
# für i386 hinzuzufügen:
#d-i apt-setup/multiarch string i386

B.4.11. Paketauswahl

Sie können jede Kombination der verfügbaren Programmgruppen auswählen. Mögliche Werte zum Zeitpunkt, als dies geschrieben wurde:

  • standard (Standard-Programme)

  • desktop (grafische Arbeitsplatz-Umgebung / Standardauswahl)

  • gnome-desktop (Gnome-Arbeitsplatz-Umgebung)

  • xfce-desktop (XFCE-Arbeitsplatz-Umgebung)

  • kde-desktop (KDE-Plasma Arbeitsplatz-Umgebung)

  • cinnamon-desktop (Cinnamon-Arbeitsplatz-Umgebung)

  • mate-desktop (MATE-Arbeitsplatz-Umgebung)

  • lxde-desktop (LXDE-Arbeitsplatz-Umgebung)

  • web-server (Web-Server)

  • ssh-server (SSH-Server)

Sie können hier auch wählen, gar nichts zu installieren und die Installation von bestimmten Paketen auf andere Art erzwingen. Wir empfehlen aber, immer zumindest die Programmgruppe standard auszuwählen.

Oder wenn Sie möchten, dass der tasksel-Dialog überhaupt nicht angezeigt wird, setzen Sie pkgsel/run_tasksel (es werden dann über tasksel gar keine Pakete installiert).

Wenn Sie zusätzlich zu den Paketen, die durch die Programmgruppen installiert werden, weitere benötigen, können Sie den Parameter pkgsel/include benutzen. Der Wert für diesen Parameter kann eine Liste von Paketen sein, getrennt entweder durch Kommas oder durch Leerzeichen, so dass Sie ihn auch recht einfach auf der Kernel-Kommandozeile verwenden können.

#tasksel tasksel/first multiselect standard, web-server, kde-desktop

# Oder wenn Sie möchten, dass der tasksel-Dialog überhaupt nicht angezeigt
# wird (und keine Pakete installiert werden):
#d-i pkgsel/run_tasksel boolean false
 

# Individuelle zusätzliche Pakete, die installiert werden sollen:
#d-i pkgsel/include string openssh-server build-essential
# Ob Pakete aktualisiert werden sollen, nachdem debootstrap beendet ist.
# Gültige Werte: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select none

# Sie können entscheiden, ob Sie Informationen darüber, welche Pakete Sie
# installiert haben, an das Debian-Projekt zurück senden möchten.
# Standardeinstellung ist, nichts zu senden, aber Informationen zu senden
# hilft dem Projekt zu entscheiden, welche Software wie beliebt ist und ob
# sie auf die erste DVD gepackt werden sollte:
#popularity-contest popularity-contest/participate boolean false

B.4.12. Installation des Bootloaders

# Grub ist der Bootloader (für x86).

# Dies ist eine ziemlich sichere Einstellung; sie bewirkt, dass grub
# automatisch in die UEFI-Partition/den Boot Record installiert wird, wenn
# kein anderes Betriebssystem erkannt wird:
d-i grub-installer/only_debian boolean true

# Dies bewirkt, dass grub in die UEFI-Partition/den Boot Record installiert
# wird, auch wenn noch andere Betriebssysteme erkannt wurden. Dies ist nicht
# ganz so sicher, da möglicherweise diese anderen Systeme nicht mehr gestartet
# werden können:
d-i grub-installer/with_other_os boolean true

# Aufgrund von möglicherweise vorhandenen USB-Sticks kann der Speicherort
# des primären Laufwerks grundsätzlich nicht sicher erkannt werden, daher
# muss er angegeben werden:
#d-i grub-installer/bootdev  string /dev/sda
# Um auf das primäre Laufwerk zu installieren (angenommen, dies ist kein
# USB-Stick):
#d-i grub-installer/bootdev  string default

# Wenn Sie alternativ an einen anderen Ort als in die UEFI-Partition/den
# Boot Record installieren möchten, entfernen Sie hier die Kommentarzeichen
# und passen Sie die Zeilen an:
#d-i grub-installer/only_debian boolean false
#d-i grub-installer/with_other_os boolean false
#d-i grub-installer/bootdev  string (hd0,1)
# Um grub auf mehrere Geräte zu installieren:
#d-i grub-installer/bootdev  string (hd0,1) (hd1,1) (hd2,1)

# Optionales Passwort für grub, entweder als Klartext ... :
#d-i grub-installer/password password r00tme
#d-i grub-installer/password-again password r00tme
# ... oder verschlüsselt mittels MD5-Hash; siehe grub-md5-crypt(8):
#d-i grub-installer/password-crypted password [MD5 hash]

# Verwenden Sie die folgende Option, um zusätzliche Boot-Parameter für
# das installierte System anzugeben (falls dies vom Bootloader-Installer
# unterstützt wird).
# Hinweis: Optionen, die dem Installer zum Booten angegeben wurden, werden
# automatisch auch für das installierte System hinzugefügt.
#d-i debian-installer/add-kernel-opts string nousb

Ein MD5-Hash für ein grub-Passwort kann mit dem Befehl grub-md5-crypt generiert werden oder mit dem Kommando aus dem Beispiel in Abschnitt B.4.6, „Einrichtung von Benutzerzugängen“.

B.4.13. Die Installation beenden

# Bei Installationen über die serielle Konsole werden die regulären virtuellen
# Konsolen (VT1 - VT6) normalerweise in /etc/inittab deaktivert. Um dies zu
# vermeiden, entfernen Sie vor der nächsten Zeile das Kommentarzeichen:
#d-i finish-install/keep-consoles boolean true

# Die letzte Meldung "Installation abgeschlossen" unterdrücken:
d-i finish-install/reboot_in_progress note

# Dies verhindert, dass der Installer während des Neustarts die Disk
# auswirft, was in einigen Situationen sinnvoll sein könnte:
#d-i cdrom-detect/eject boolean false

# Durch die folgende Zeile wird der Installer nach Abschluss der
# Installation nur heruntergefahren, kein Neustart, es wird nicht das neue
# System gestartet:
#d-i debian-installer/exit/halt boolean true
# Durch die nächste Zeile wird der Rechner komplett abgeschaltet statt
# nur gestoppt:
#d-i debian-installer/exit/poweroff boolean true

B.4.14. Voreinstellung anderer Pakete

# Abhängig davon, welche Software Sie zur Installation auswählen oder ob
# Dinge während des Installationsprozesses schief laufen, ist es möglich,
# dass andere Fragen auftauchen. Sie können auch für diese natürlich
# Voreinstellungen festlegen. Eine Liste mit allen möglichen Fragen, die
# gestellt werden könnten, bekommen Sie, indem Sie eine Installation
# durchführen und danach diese Befehle ausführen:
#   debconf-get-selections --installer > file
#   debconf-get-selections >> file


[20] Wenn zum Beispiel locale auf en_NL voreingestellt wird, würde dies zu dem Standard-Gebietsschema en_US.UTF-8 auf dem installierten System führen. Wenn aber stattdessen en_GB.UTF-8 bevorzugt wird, müssen diese Werte individuell voreingestellt werden.