systemd-firstbootsystemdsystemd-firstboot1systemd-firstbootsystemd-firstboot.serviceInitialize basic system settings on or before the first boot-up of a systemsystemd-firstbootOPTIONSsystemd-firstboot.serviceDescriptionsystemd-firstboot initializes the most
basic system settings interactively on the first boot, or
optionally non-interactively when a system image is created.
The service is started if ConditionFirstBoot=yes
is satisfied. This essentially means that /etc
is empty, see
systemd.unit5
for details.The following settings may be set up:The system locale, more specifically the two
locale variables LANG= and
LC_MESSAGESThe system keyboard mapThe system time zoneThe system hostnameThe machine ID of the systemThe root user's passwordEach of the fields may either be queried interactively by
users, set non-interactively on the tool's command line, or be
copied from a host system that is used to set up the system
image.If a setting is already initialized, it will not be
overwritten and the user will not be prompted for the
setting.Note that this tool operates directly on the file system and
does not involve any running system services, unlike
localectl1,
timedatectl1
or
hostnamectl1.
This allows systemd-firstboot to operate on
mounted but not booted disk images and in early boot. It is not
recommended to use systemd-firstboot on the
running system while it is up.OptionsThe following options are understood:Takes a directory path as an argument. All
paths will be prefixed with the given alternate
root path, including config search
paths. This is useful to operate on a system image mounted to
the specified directory instead of the host system itself.
Sets the system locale, more specifically the
LANG= and LC_MESSAGES
settings. The argument should be a valid locale identifier,
such as de_DE.UTF-8. This controls the
locale.conf5
configuration file.Sets the system keyboard layout. The argument should be a valid keyboard map,
such as de-latin1. This controls the KEYMAP entry in the
vconsole.conf5
configuration file.Sets the system time zone. The argument should
be a valid time zone identifier, such as
Europe/Berlin. This controls the
localtime5
symlink.Sets the system hostname. The argument should
be a hostname, compatible with DNS. This controls the
hostname5
configuration file.Sets the system's machine ID. This controls
the
machine-id5
file.Sets the password of the system's root user. This creates a
shadow5
file. This setting exists in three forms: accepts the password to
set directly on the command line, reads it from a file and
accepts an already hashed password on the command line. See
shadow5
for more information on the format of the hashed password. Note that it is not recommended to specify
plaintext passwords on the command line, as other users might be able to see them simply by invoking
ps1.
Sets the system's kernel command line. This controls the
/etc/kernel/cmdline file which is used by
kernel-install8.
Prompt the user interactively for a specific
basic setting. Note that any explicit configuration settings
specified on the command line take precedence, and the user is
not prompted for it.Query the user for locale, keymap, timezone, hostname
and root password. This is equivalent to specifying
,
,
,
,
in combination.Copy a specific basic setting from the host.
This only works in combination with
(see above).Copy locale, keymap, time zone and root password from
the host. This is equivalent to specifying
,
,
,
in combination.Initialize the system's machine ID to a random
ID. This only works in combination with
.systemd-firstboot doesn't modify existing files unless
is specified. For modifications to /etc/passwd and
/etc/shadow, systemd-firstboot only modifies the entry of the
root user instead of overwriting the entire file.Removes the password of the system's root user, enabling login as root without a
password unless the root account is locked. Note that this is extremely insecure and hence this
option should not be used lightly.Exit statusOn success, 0 is returned, a non-zero failure code
otherwise.Kernel Command Linesystemd.firstboot=Takes a boolean argument, defaults to on. If off, systemd-firstboot.service
won't interactively query the user for basic settings at first boot, even if those settings are not
initialized yet.See Alsosystemd1,
locale.conf5,
vconsole.conf5,
localtime5,
hostname5,
machine-id5,
shadow5,
systemd-machine-id-setup1,
localectl1,
timedatectl1,
hostnamectl1