C.1. Beispiel einer Voreinstellungs-Datei

Dies ist ein komplettes, funktionierendes Beispiel einer Voreinstellungs-Datei für eine automatische Installation. Wie Sie sie benutzen, ist in Abschnitt 4.5, „Automatische Installation“ beschrieben. Vielleicht sollten Sie bei einigen Zeilen der Datei das Kommentarzeichen entfernen, bevor Sie sie benutzen.

Anmerkung

Um dieses Beispiel im Handbuch korrekt darstellen zu können, mussten einige Zeilen gesplittet werden, da sie sonst aufgrund ihrer Länge nicht komplett angezeigt werden könnten. Sie erkennen diese Zeilen daran, dass das Zeilenfortführungs-Zeichen „\“ verwendet wird sowie an einer zusätzlichen Einrückung in der darauf folgenden Zeile. In einer echten Voreinstellungs-Datei müssen diese gesplitteten Zeilen wieder zu einer einzigen Zeile zusammengefügt werden. Ansonsten wird die Voreinstellung nicht funktionieren und kann zu unvorhersehbaren Ergebnissen führen.

Sie finden eine „unveränderte“, funktionsfähige Voreinstellungs-Datei unter http://www.debian.org/releases/sarge/example-preseed.txt.

#### Der Start:

# Um eine Vorkonfigurations-Datei zu verwenden, müssen Sie als erstes den
# Installer booten und ihm sagen, welche Vorkonfigurations-Datei er nutzen
# soll. Dazu geben Sie dem Kernel einen Startparameter an, entweder manuell
# beim Starten oder indem Sie die Datei syslinux.cfg (oder eine vergleichbare)
# anpassen: hängen Sie den Startparameter an das Ende der "append"-Zeile(n) des
# Kernels an.
#
# Wenn Sie per Netzwerk booten, nutzen Sie dies:
#   preseed/url=http://host/path/to/preseed
# Wenn Sie eine CD für diesen Zweck anpassen/remastern, könnten Sie dies nutzen:
#   preseed/file=/cdrom/preseed
# Wenn Sie von einem USB-Speicher-Medium booten, nutzen Sie dies und speichern
# Sie die Voreinstellungs-Datei im Hauptverzeichnis des USB-Mediums ab:
#   preseed/file=/hd-media/preseed
# Vergewissern Sie sich, dass Sie die Datei an den Ort kopieren, den Sie angegeben
# haben.
#
# Einige Teile des Installationsprozesses können mit bestimmten Formen der
# Voreinstellung nicht automatisiert werden, da die Fragen bereits gestellt
# werden, bevor die Voreinstellungs-Datei geladen wird. Zum Beispiel:
# wenn die Voreinstellungs-Datei über das Netzwerk geladen wird, muss
# vorher die Netzwerkkonfiguration erledigt werden. Dies ist ein Grund dafür,
# Voreinstellung per "initrd" zu nutzen: dies erlaubt auch die Automatisierung
# dieser frühen Installationsschritte.
#
# Wenn eine Vorkonfigurations-Datei nicht benutzt werden kann, um gewisse
# Schritte voreinzustellen, kann die Installation trotzdem voll automatisiert
# werden, indem man dem Kernel Werte für die Voreinstellung auf der
# Kommandozeile als Startparameter mitgibt. Geben Sie einfach für jeden der
# unten aufgeführten Variablen "Pfad/zur/Variable=Wert" an.
#
# Während Sie hiermit arbeiten, sollten Sie vielleicht die Priorität auf
# kritisch setzen (debconf/priority=critical), um die meisten Fragen zu
# unterdrücken, auch wenn in der Voreinstellungs-Datei Einträge fehlen sollten.
# Und Sie sollten in syslinux.cfg den Timeout auf 1 setzen, damit Sie nicht
# Enter drücken müssen, um den Installer zu booten.
#
# Beachten Sie, dass der Kernel maximal 8 Kommandozeilen-Optionen und
# 8 Umgebungsoptionen akzeptiert (inklusive einiger Optionen, die
# standardmäßig für den Installer hinzugefügt werden). Wird diese Zahl
# überschritten, werden 2.4-Kernel die überzähligen einfach ignorieren
# und 2.6-Kernel (vor 2.6.9) werden eine Kernel-Panic melden.
# 2.6.9-Kernel oder höher akzeptieren 32 Kommandozeilen-Optionen und
# 32 Umgebungsoptionen.
#
# Einige der Standardoptionen wie "vga=normal"
# können bei den meisten Installationen getrost entfernt werden, was es
# erlaubt, mehr Optionen für Voreinstellungen anzugeben.
#
# Es ist nicht möglich, Sprache, Land und Tastaturbelegung über eine Datei
# voreinzustellen. Stattdessen sollten Sie entsprechende Kernelparameter
# verwenden. Beispiel:
#    languagechooser/language-name=English    # für Sprache Englisch
#    countrychooser/shortlist=US              # für Landesauswahl US
#    console-keymaps-at/keymap=us             # für Tastaturbelegung us

#### Netzwerk-Konfiguration.

# Dies wird natürlich nicht funktionieren, wenn Sie Ihre Voreinstellungs-Datei
# über das Netzwerk laden! Es ist aber toll, wenn Sie von CD oder USB-Stick
# booten. Sie können auch Netzwerkkonfigurations-Parameter angeben, wenn Sie
# die Voreinstellungs-Datei per Netzwerk laden, und zwar als Kernel-Parameter.

# 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

# 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

# Wenn Sie es vorziehen, das Netzwerk manuell zu konfigurieren: hier steht,
# wie es geht:
#d-i netcfg/disable_dhcp boolean true
#d-i netcfg/get_nameservers string 192.168.1.1
#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/confirm_static boolean true

# Bedenken Sie, dass jeder Hostname und Domainname, 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

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

#### Einstellungen für den Debian-Spiegelserver.

d-i mirror/country string enter information manually
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/suite string testing
d-i mirror/http/proxy string 

### Partitionierung.

# Wenn das System freien Platz auf der Platte hat, können Sie festlegen, nur
# diesen Platz zu partitionieren.
#d-i partman-auto/init_automatically_partition \
#    select Use the largest continuous free space

# Alternativ können Sie eine Festplatte angeben, die partitioniert werden soll.
# Der Gerätename kann entweder als devfs-Bezeichnung oder im traditionellen
# Format angegeben werden. Um z.B. die erste Platte zu nutzen, die devfs kennt:
d-i partman-auto/disk string /dev/discs/disc0/disc

# Sie können eines der vordefinierten Partitionierungsrezepte wählen:
d-i partman-auto/choose_recipe select \
     All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe select Desktop machine
#d-i partman-auto/choose_recipe select Multi-user workstation

# Oder erstellen Sie ein eigenes Rezept...
# Das Rezept-Format ist in der Datei devel/partman-auto-recipe.txt beschrieben.
# 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

# Wenn nicht, können sie auch ein ganzes Rezept in eine einzige 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 :: \
#    20 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{ } . 
#
# Als Referenz hier das gleiche Rezept in einer lesbareren Form:
# 	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{ }
#	.

# Durch diese Voreinstellung partitioniert partman automatisch, ohne nachzufragen.
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select \
    Finish partitioning and write changes to disk
d-i partman/confirm boolean true

#### Installation des Bootloaders.

# Grub ist (für x86) der Standard-Bootloader. Wenn Sie stattdessen lilo
# installieren möchten, entfernen Sie hier das Kommentarzeichen:
#d-i grub-installer/skip boolean true

# Dies ist eine ziemlich sichere Einstellung; sie bewirkt, dass grub automatisch
# in den MBR installiert wird, wenn kein anderes Betriebssystem erkannt wird. 
d-i grub-installer/only_debian boolean true

# Dies bewirkt, dass grub in den MBR installiert wird, wenn andere
# Betriebssysteme erkannt werden. Dies ist nicht sehr sicher, da so möglicherweise
# die anderen Systeme nicht mehr gestartet werden können.
d-i grub-installer/with_other_os boolean true

# Wenn Sie alternativ an einen anderen Ort als in den MBR installieren möchten,
# entfernen Sie hier die Kommentarzeichen und passen Sie die Zeilen an:
#d-i grub-installer/bootdev string (hd0,0)
#d-i grub-installer/only-debian boolean false
#d-i grub-installer/with_other_os boolean false

##### Die erste Installationsstufe beenden.

# Die letzte Meldung "Installation abgeschlossen" unterdrücken.
d-i prebaseconfig/reboot_in_progress note 

#### Shell-Befehle.

# Den d-i voreinzustellen, ist von Natur aus nicht sicher. Nichts im Installer
# überprüft auf Versuche eines Pufferüberlaufs oder anderweitiger Ausnutzung
# der Werte einer Voreinstellungs-Datei wie dieser. Benutzen Sie nur
# Voreinstellungs-Dateien aus vertrauenswürdigen Quellen! Um diese Aussage zu 
# untermauern und weil es auch generell nützlich ist, zeigen wir hier eine
# Möglichkeit, jegliche Shell-Befehle, die Sie gerne im Installer hätten,
# automatisch zu starten.

# Dieser erste Befehl wird so früh wie möglich ausgeführt, direkt nachdem das
# Lesen der Voreinstellungs-Datei abgeschlossen ist.
#d-i preseed/early_command string anna-install some-udeb

# Dieses Kommando wird ausgeführt, kurz bevor der Installer fertig ist, wenn
# aber noch ein nutzbares /target-Verzeichnis verfügbar ist.
#d-i preseed/late_command string echo foo > /target/etc/bar

# Dieser Befehl wird ausgeführt, wenn base-config startet.
#base-config base-config/early_command string echo hi mom

# Dieses Kommando wird ausgeführt, wenn base-config fertig ist, direkt vor dem
# Login:-Prompt. An dieser Stelle wäre eine gute Möglichkeit, einen Satz
# Pakete zu installieren, die Sie haben möchten, oder die Konfiguration des
# Systems zu optimieren.
#base-config base-config/late_command string \
#    apt-get install zsh; chsh -s /bin/zsh

###### Die zweite Stufe der Installation voreinstellen.

##### base-config voreinstellen.

# Die Einführungs-Nachricht unterdrücken.
base-config base-config/intro note 

# Die abschließende Nachricht unterdrücken.
base-config base-config/login note 

# Wenn ein Display-Manager installiert wurde, aber nicht direkt gestartet
# werden soll, nachdem base-config beendet ist:
#base-config base-config/start-display-manager boolean false

# Einige Versionen des Installer können Informationen an das Debian-Projekt
# zurück senden, welche Pakete Sie installiert haben. Standardeinstellung
# ist, nichts zu senden, aber Informationen zu senden hilft dem Projekt
# zu entscheiden, welche Software wie beliebt ist und ob sie auf die CDs
# gepackt werden sollte.
#popularity-contest popularity-contest/participate boolean false

###### Einstellung der Zeitzone.

# Ob die Hardware-Uhr auf GMT gesetzt ist oder nicht:
base-config tzconfig/gmt boolean true
# Wenn Sie dem Installer mitgeteilt haben, dass Sie sich in den USA befinden,
# können Sie mit dieser Variable die Zeitzone festlegen.
# (Mögliche Werte sind: Eastern, Central, Mountain, Pacific, Alaska, Hawaii,
# Aleutian, Arizona East-Indiana, Indiana-Starke, Michigan, Samoa, other)
base-config tzconfig/choose_country_zone/US select Eastern
# Wenn Sie sich in Kanada befinden.
# (Mögliche Werte sind: Newfoundland, Atlantic, Eastern, Central,
# East-Saskatchewan, Saskatchewan, Mountain, Pacific, Yukon, other)
base-config tzconfig/choose_country_zone/CA select Eastern
# Wenn Sie sich in Brasilien befinden.
# (Mögliche Werte sind: East, West, Acre, DeNoronha, other)
base-config tzconfig/choose_country_zone/BR select East
# Viele Länder haben nur eine Zeitzone. Wenn Sie sich in einem solchen Land
# befinden, können Sie mit der folgenden Zeile die Standard-Zeitzone dieses
# Landes wählen.
base-config tzconfig/choose_country_zone_single boolean true
# Die nächste Frage ist ein Fallback für Länder, die nicht oben erwähnt wurden,
# aber mehr als eine Zeitzone haben. Sie können eine der Zeitzonen auswählen
# oder den Wert "other". 
#base-config tzconfig/choose_country_zone_multiple select 

###### Einstellungen für Benutzeraccounts.

# Um das root-Passwort voreinzustellen, müssen Sie es als Klartext in diese
# Datei schreiben. Das ist keine gute Idee, nutzen Sie dies mit Vorsicht!
#passwd	passwd/root-password password r00tme
#passwd	passwd/root-password-again password r00tme

# Wenn Sie die Erzeugung eines normalen Benutzerkontos überspringen wollen:
#passwd	passwd/make-user boolean false

# Alternativ, können Sie den vollen Namen und den Loginnamen voreinstellen.
#passwd	passwd/user-fullname string Debian User
#passwd	passwd/username string debian
# Sowie das Passwort, aber seien Sie hiermit vorsichtig!
#passwd	passwd/user-password password insecure
#passwd	passwd/user-password-again password insecure

###### Apt-Setup.

# Diese Frage legt fest, welche Paketquelle in der zweiten Stufe der
# Installation benutzt wird.
# (Mögliche Werte sind: cdrom, http, ftp, filesystem, edit sources list by hand)
base-config apt-setup/uri_type select http

# Wenn Sie ftp oder http auswählen, werden Sie nach einen Land und einem
# Spiegel-Server gefragt:
base-config apt-setup/country select enter information manually
base-config apt-setup/hostname string http.us.debian.org
base-config apt-setup/directory string /debian
# Den Dialog nach der Auswahl des Spiegelservers beenden (keine weitere
# Paketquelle angeben).
base-config apt-setup/another boolean false

# Sie können wählen, ob Sie Software aus dem "non-free"- und "contrib"-Zweig
# installieren möchten.
#base-config apt-setup/non-free boolean true
#base-config apt-setup/contrib boolean true

# Sicherheitsupdates aktivieren (eine gute Idee).
base-config apt-setup/security-updates boolean true

###### Paketauswahl.

# Sie können jede Kombination der verfügbaren Programmgruppen auswählen.
# (Mögliche Werte sind: Desktop environment, Web server, Print server,
# DNS server, File server, Mail server, SQL database, Laptop, Standard system,
# manual package selection.)
# Die letzte der Möglichkeiten startet aptitude. Sie können auch wählen,
# hier gar nichts zu installieren und die Installation von bestimmten
# Paketen auf andere Art erzwingen. Wir empfehlen, immer zumindest die
# Programmgruppe "Standard system" zu verwenden.
tasksel tasksel/first multiselect Desktop environment, Standard system
#tasksel tasksel/first multiselect Web server, Standard system

###### Konfiguration des Mailsystems.

# In einer normalen Installation stellt exim nur zwei Fragen. Hier erfahren
# Sie, wie Sie auch diese noch unterdrücken können. Umfangreichere
# Voreinstellungen sind möglich.
exim4-config exim4/dc_eximconfig_configtype \
    select no configuration at this time
exim4-config exim4/no_config boolean true
exim4-config exim4/no_config boolean true

# Es ist eine gute Idee, diese Einstellung auf das Benutzerkonto zu setzen,
# das Sie erstellt haben. Wenn Sie es leer lassen, bedeutet das, das
# Mails für den "postmaster" nach /var/mail/mail gehen.
exim4-config exim4/dc_postmaster string 

###### Konfiguration des X-Servers.

# Die Konfiguration von Debians X-System voreinzustellen, ist möglich, aber
# Sie müssen dazu einige Details über die Video-Hardware des Rechners kennen,
# da Debians X-Konfigurationsprogramm nicht in jedem Fall eine vollautomatische
# Konfiguration durchführen kann.

# X kann den richtigen Treiber für einige Grafikkarten erkennen, aber wenn
# Sie eine Voreinstellung treffen, überschreiben Sie diese Auswahl. Vesa
# sollte aber in den meisten Fällen funktionieren.
#xserver-xfree86 xserver-xfree86/config/device/driver select vesa

# Das Problem mit der automatischen Mauserkennung ist: wenn es schief geht,
# wird X es wieder und wieder versuchen. Wenn also automatische Erkennung
# voreingestellt ist, besteht die Gefahr einer Endlosschleife, falls die
# Maus nicht erkannt werden kann.
#xserver-xfree86 xserver-xfree86/autodetect_mouse boolean true

# Die automatische Erkennung des Monitors wird empfohlen.
xserver-xfree86	xserver-xfree86/autodetect_monitor boolean true
# Entfernen Sie hier das Kommentarzeichen, wenn Sie ein LCD-Display haben.
#xserver-xfree86 xserver-xfree86/config/monitor/lcd boolean true
# Die X-Konfiguration bietet drei mögliche Wege für die Konfiguration des
# Monitors. Dies ist die Voreinstellung für "medium", was immer verfügbar ist.
# Der einfache Weg ("simple") ist nicht immer verfügbar und "advanced"
# (erweitert) stellt zu viele Fragen.
xserver-xfree86	xserver-xfree86/config/monitor/selection-method	\
    select medium
xserver-xfree86	xserver-xfree86/config/monitor/mode-list \
    select 1024x768 @ 60 Hz

###### Alles andere; der Rest.

# 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

# Wenn Sie mögen, können Sie hier weitere Voreinstellungs-Dateien in diese
# Datei integrieren. Jegliche Einstellungen in den integrierten Dateien werden die
# Werte aus dieser Datei überschreiben. Es können mehr als eine Datei angegeben
# werden, getrennt durch Leerzeichen; alle werden geladen. Die integrierten
# Dateien können ebenfalls wieder "preseed/include"-Regeln enthalten.
# Bedenken Sie: wenn Sie relative Dateipfade angeben, gehen diese von dem
# gleichen Verzeichnis aus, das auch die Voreinstellungs-Datei enthält, in
# der sie integriert sind.
#d-i preseed/include string x.cfg

# Der flexiblere Weg: dies startet ein Shell-Kommando und wenn dies die Namen
# von Voreinstellungs-Dateien zurückgibt, werden Sie integriert. Ein Beispiel:
# um zwischen Konfigurationen umzuschalten in Abhängigkeit von einem bestimmten
# USB-Speicher-Gerät (in diesem Fall ein eingebauter Kartenleser) nutzen Sie:
#d-i preseed/include_command string \
#    if $(grep -q "GUID: 0aec3050aec305000001a003"  /proc/scsi/usb-storage-*/*); \
#    then echo kraken.cfg; else echo otherusb.cfg; fi

# Um das Format Ihrer Voreinstellungs-Datei zu prüfen, bevor Sie eine
# Installation starten, können Sie debconf-set-selections verwenden:
#   debconf-set-selections -c preseed.cfg