BESCHREIBUNG¶
Die Unit systemd-firstboot.service ist eine der Units, die
zur Initialisierung der Maschinenkonfiguration während des
»Ersten Systemstarts« verwandt wird, d.h. wenn das System
frisch installiert ist oder nach dem »Rücksetzen auf
Werkseinstellungen«. Der Verwalter systemd(1) wird selbst
machine-id(5) voreinstellen und alle Units mit Werten vorbelegen, sie
gemäß der Einstellungen von systemd.preset(5)
aktivieren oder deaktivieren. systemd-firstboot.service wird
später gestartet, um interaktiv die grundlegende Systemkonfiguration
zu initialisieren. Es startet nur, falls ConditionFirstBoot=yes
zutrifft, was im wesentlichen bedeutet, das /etc/ leer ist, siehe
systemd.unit(5) zu Details. Systemzugangsberechtigungen können
zum Einspeisen von Konfiguration verwandt werden; diese Einstellungen werden
nicht interaktiv abgefragt.
Der Befehl systemd-firstboot kann auch zum
Nicht-interaktiven Initialisieren eines Offline-Systemabbildes verwandt
werden.
Die folgenden Einstellungen können konfiguriert werden:
•Die Maschinenkennung des Systems
•Die Locale des Systems, genauer die zwei
Locale-Variablen LANG= und LC_MESSAGES
•Die Tastaturzuordnung des Systems
•Die Zeitzone des Systems
•Der Rechnername des Systems
•The machine tags
•Die bei der Installation von Kernelabbildern
verwandte Kernelbefehlszeile
•Das Passwort und die Shell des Benutzers
»root«
Jedes der Felder kann entweder interaktiv durch Benutzer
abgefragt, nicht interaktiv über die Befehlszeile des Werkzeugs
gesetzt oder von einem Wirtssystem, das zum Einrichten des Systemabbildes
verwandt wird, kopiert werden.
Falls eine Einstellung bereits initialisiert ist, wird sie nicht
überschrieben und der Benutzer wird nicht für die Einstellung
befragt.
Beachten Sie, dass dieses Werkzeug direkt auf dem Dateisystem
agiert und keine laufenden Systemdienste beteiligt, anders als
localectl(1), timedatectl(1) oder hostnamectl(1). Dies
erlaubt systemd-firstboot auf eingehängten, aber nicht
gestarteten Plattenabbildern und in der frühen Systemstartphase zu
agieren. Es wird nicht empfohlen, systemd-firstboot im laufenden
System zu verwenden, nachdem dieses eingerichtet wurde.
OPTIONEN¶
Die folgenden Optionen werden verstanden:
--root=Wurzel
Akzeptiert einen Verzeichnispfad als Argument. Allen
Pfaden wird der übergebene alternative
Wurzelpfad vorangestellt,
einschließlich Konfigurationssuchpfaden. Dies ist zur Arbeit auf
Systemabbildern nützlich, die auf dem angegebenen Verzeichnis
eingehängt sind, statt auf dem Wirtssystem selbst.
Hinzugefügt in Version 216.
--image=Pfad
Akzeptiert einen Pfad zu einer Plattenabbilddatei oder
einem Blockgerätenamen. Falls angegeben, werden alle Aktionen auf das
Dateisystem in dem angegebenen Plattenabbild angewandt. Dies ist
ähnlich zu
--root=, agiert aber auf Dateisystemen, die in
Plattenabbildern oder Blockgeräten gespeichert sind. Das Plattenabbild
sollte entweder nur ein Dateisystem oder eine Reihe von Dateisystemen
innerhalb einer GPT-Partitionstabelle enthalten, die der
UAPI.2-Spezifikation für auffindbare Partitionen[1] folgt.
Für weitere Informationen über unterstützte
Plattenabbilder, siehe den Schalter von
systemd-nspawn(1) mit dem
gleichen Namen.
Hinzugefügt in Version 246.
--locale=LOCALE,
--locale-messages=LOCALE
Setzt die System-Locale, genauer die Einstellungen
LANG= und
LC_MESSAGES. Das Argument sollte ein gültiger
Locale-Kennzeichner wie »de_DE.UTF-8« sein. Dies steuert die
Konfigurationsdatei
locale.conf(5).
Hinzugefügt in Version 216.
--keymap=TASTENZUORDNUNG
Setzt die Systemtastaturbelegung. Das Argument sollte
eine gültige Tastaturzuordnung sein, wie »de-latin1«.
Dies steuert den Eintrag »KEYMAP« in der Konfigurationsdatei
vconsole.conf(5).
Hinzugefügt in Version 236.
--timezone=ZEITZONE
Setzt die Zeitzone des Systems. Das Argument sollte ein
gültiger Zeitzonenkennzeichner wie »Europe/Berlin« sein.
Dies steuert den Symlink
localtime(5).
Hinzugefügt in Version 216.
--hostname=RECHNERNAME
Setzt den Rechnernamen des Systems. Das Argument sollte
ein zum DNS kompatibler Rechnername sein. Dies steuert die Konfigurationsdatei
hostname(5).
Hinzugefügt in Version 216.
--setup-machine-id
Initialisiert die Maschinenkennung des Systems auf eine
zufällige Kennung. Dies steuert die Datei
machine-id(5).
Diese Option funktioniert nur in Kombination mit --root=
oder --image=. Auf einem laufenden System wird die Maschinenkennung
vom Verwalter mit Hilfe von systemd-machine-id-commit.service(8)
geschrieben.
Hinzugefügt in Version 216.
--machine-id=KENNUNG
Setzt die Maschinenkennung des Systems auf den
angegebenen Wert. Es gelten die gleichen Beschränkungen wie bei
--setup-machine-id.
Hinzugefügt in Version 216.
--machine-tags=TAG[:TAG...]
Set the machine tags to the specified colon-separated
list. Machine tags are short labels that may be used to classify and group
machines for management purposes, for example to identify the role a machine
plays in a deployment, the fleet or organizational unit it belongs to, or any
other administrator-defined attribute. Each individual tag must be 1...255
characters long and consist only of ASCII alphanumeric characters,
"-" and ".". This controls the
TAGS= field of
machine-info(5). The tags may later be queried and changed with the
tags command of
hostnamectl(1), and matched against with the
ConditionMachineTag=/
AssertMachineTag= unit settings, see
systemd.unit(5).
Unlike most other settings, machine tags are not prompted for
interactively.
Hinzugefügt in Version 261.
--root-password=PASSWORT,
--root-password-file=PFAD,
--root-password-hashed=GEHASHTES_PASSWORT
Setzt das Passwort des Benutzers root des Systems. Dies
erstellt/verändert die
passwd(5)- und
shadow(5)-Datei.
Diese Einstellung existiert auf drei Arten:
--root-password= akzeptiert
das zu setzende Passwort direkt auf der Befehlszeile,
--root-password-file= liest es aus einer Datei und
--root-password-hashed= akzeptiert ein bereits gehashtes Passwort auf
der Befehlszeile. Siehe
shadow(5) für weitere Informationen
über das Format der gehashten Passwörter. Beachten Sie, dass die
Angabe von Passwörtern auf der Befehlszeile nicht empfohlen wird, da
andere Benutzer durch einfachen Aufruf von
ps(1) sie beobachten
könnten.
Hinzugefügt in Version 216.
--root-shell=SHELL
Setzt die Shell des Benutzer root des Systems. Dies
erstellt/verändert die Datei
passwd(5).
Hinzugefügt in Version 246.
--kernel-command-line=BEFEHLSZEILE
Setzt die Kernelbefehlszeile des Systems. Dies steuert
die Datei /etc/kernel/cmdline, die von
kernel-install(8) verwandt wird.
Hinzugefügt in Version 246.
--prompt-locale, --prompt-keymap,
--prompt-timezone, --prompt-hostname,
--prompt-root-password, --prompt-root-shell
Fragt den Benutzer interaktiv nach einer bestimmten
grundlegenden Einstellung. Beachten Sie, dass jede explizit angegebene
Einstellung auf der Befehlszeile Vorrang hat und der Benutzer nicht danach
gefragt wird.
Hinzugefügt in Version 216.
--prompt
Fragt nach der Locale, Tastenzuordnung, Zeitzone, dem
Rechnernamen, dem Passwort und der Shell von root. Dies ist äquivalent
zur Angabe der Kombination von
--prompt-locale,
--prompt-keymap,
--prompt-timezone,
--prompt-hostname,
--prompt-root-password,
--prompt-root-shell.
Hinzugefügt in Version 216.
--prompt-keymap-auto
Beim Aufruf von einem virtuellen Terminal TTY ist dies zu
--prompt-keymap äquivalent, andernfalls hat es keine Auswirkung.
Mit anderen Worten: Es wird nur interaktiv nach einer Tastaturbelegung
für eine lokale Tastatur gefragt, falls die Interaktivität dies
benötigt.
Hinzugefügt in Version 259.
--copy-locale, --copy-keymap,
--copy-timezone, --copy-root-password,
--copy-root-shell
Kopiert eine bestimmte grundlegende Eigenschaft vom
Rechner. Dies funktioniert nur in Kombination mit
--root= oder
--image=.
Hinzugefügt in Version 216.
--copy
Kopiert die Locale, Tastenzuordnung, Zeitzone, das
root-Passwort und die Shell vom Rechner. Dies ist äquivalent zur Angabe
der Kombination von
--copy-locale,
--copy-keymap,
--copy-timezone,
--copy-root-password,
--copy-root-shell.
Hinzugefügt in Version 216.
--force
Schreibt Konfiguration selbst wenn die relevanten Dateien
bereits existieren. Ohne diese Option verändert oder ersetzt
systemd-firstboot bestehende Dateien nicht. Beachten Sie, dass bei der
Konfiguration des Kontos von Root selbst mit dieser Option
systemd-firstboot nur den Eintrag des Benutzers »root«
verändert und andere Einträge in /etc/passwd und /etc/shadow
intakt lässt.
Hinzugefügt in Version 246.
--reset
Entfernt, falls angegeben, alle mittels
systemd-firstboot konfigurierten bestehenden Dateien. Beachten Sie,
dass die Dateien unabhängig davon, ob sie mit einem neuen Wert
konfiguriert wurden, entfernt werden. Diese Aktion stellt sicher, dass der
nächste Start des Abbilds als erster Systemstart betrachtet wird und
systemd-firstboot erneut zur Konfiguration aller entfernten Dateien
auffordern wird.
Hinzugefügt in Version 254.
--delete-root-password
Entfernt das Passwort vom Benutzer root des Systems und
aktiviert die Anmeldung als root ohne Passwort, außer das Konto von
root ist gesperrt. Beachten Sie, dass dies extrem unsicher ist und daher diese
Option nicht leichtfertig verwandt werden sollte.
Hinzugefügt in Version 246.
--welcome=
Akzeptiert ein logisches Argument.
Standardmäßig wird dem Benutzer bei der Aufforderung zur Eingabe
von Konfigurationsoptionen ein kurzer Begrüßungstext gezeigt,
bevor die erste Frage gestellt wird. Übergeben Sie false an diese
Option, um diesen Begrüßungstext abzuschalten.
Hinzugefügt in Version 246.
--chrome=
Akzeptiert ein logische Argument.
Standardmäßig wird der anfängliche Einrichtungsbildschirm
»chrome«-Balken in invertierter Farbdarstellung oben und unten
auf dem Terminal-Bildschirm anzeigen. Durch Setzen dieser Option auf
»false« wird dies deaktiviert.
Hinzugefügt in Version 259.
--mute-console=
Akzeptiert ein logisches Argument. Falls
»true«, wird die Kernel-Protokollausgabe und die
Diensteverwalter-Statusausgabe auf die Systemkonsole temporär pausiert,
während
systemd-firstboot ausgeführt wird, so dass seine
eigene Ausgabe nicht unterbrochen wird. Standardmäßig
»false«.
Hinzugefügt in Version 259.
-h, --help
Zeigt einen kurzen Hilfetext an und beendet das
Programm.
--version
Zeigt eine kurze Versionszeichenkette an und beendet das
Programm.
ZUGANGSDATEN¶
systemd-firstboot unterstützt die
Dienste-Anmeldedaten-Logik, wie sie von
ImportCredential=/LoadCredential=/SetCredential=
implementiert ist (siehe systemd.exec(5) für Details). Die
folgenden Anmeldedaten werden verwandt, wenn sie hereingereicht werden:
passwd.hashed-password.root,
passwd.plaintext-password.root
Ein gehashtes oder eine Klartextversion des Passworts
für root, anstelle den Benutzer zu fragen. Diese Anmeldedaten sind
identisch zu den für den Dienst
systemd-sysusers.service(8)
definierten.
Hinzugefügt in Version 249.
passwd.shell.root
Legt das Shell-Programm, das für das festgelegte
Konto verwandt werden soll, fest. Äquivalent zu dem für den
Dienst
systemd-sysusers.service(8) definierten Anmeldedatum gleichen
Namens.
Hinzugefügt in Version 249.
firstboot.locale, firstboot.locale-messages
Diese Anmeldedaten legen die Locale-Einstellungen fest,
die während des ersten Systemstarts gesetzt werden, anstelle den
Benutzer zu fragen.
Hinzugefügt in Version 249.
firstboot.keymap
Dieses Anmeldedatum legen die Tastatureinstellungen fest,
die während des ersten Systemstarts gesetzt werden, anstelle den
Benutzer zu fragen.
Beachten Sie den Zusammenhang zu der von
systemd-vconsole-setup.service(8) verstandenen Zugangsberechtigung
vconsole.keymap: beide betreffen letztendlich die gleiche
Einstellung, aber zuerst wird firstboot.keymap in /etc/vconsole.conf
beim ersten Systemstart geschrieben (falls nicht bereits konfiguriert) und
dann durch systemd-vconsole-setup von dort gelesen, während
vconsole.keymap bei jedem Systemstart gelesen und nicht dauerhaft auf
Platte geschrieben wird (aber jede Konfiguration in vconsole.conf hat
Vorrang, falls vorhanden).
Hinzugefügt in Version 249.
firstboot.timezone
Dieses Anmeldedatum legt die beim ersten Systemstart zu
setzende System-Zeitzoneneinstellung fest, anstelle den Benutzer zu fragen.
Hinzugefügt in Version 249.
firstboot.hostname
This credential specifies the static system hostname to
set during first boot. The user will not be prompted for the hostname. Note
that this controls the static hostname, not the transient hostname, and only
has an effect on first boot, unlike
system.hostname.
Hinzugefügt in Version 261.
firstboot.machine-tags
This credential specifies the machine tags to set during
first boot, as a colon-separated list, equivalent to the
--machine-tags= switch described above. The tags are written into the
TAGS= field of /etc/machine-info (if that file is not already present),
and only have an effect on first boot. If the list contains invalid tags it is
ignored in its entirety.
Hinzugefügt in Version 261.
Beachten Sie, dass standardmäßig die Unit-Datei
systemd-firstboot.service so eingerichtet ist, dass sie die
aufgeführten Anmeldedaten vom Diensteverwalter erbt. Wird daher der
Container mit einem leeren /etc/ erstmalig aufgerufen, kann das Passwort des
Benutzers root wie folgt auf »systemd« konfiguriert
werden:
# systemd-nspawn --image=… --set-credential=firstboot.locale:de_DE.UTF-8 …
Beachten Sie, dass diese Anmeldedaten nur während des
ersten Systemstarts gelesen und angewandt werden. Sobald sie angewandt
wurden, bleiben sie für nachfolgende Systemstarts angewandt und die
Anmeldedaten werden nicht mehr weiter betrachtet.