'\" t
.TH "SYSTEMD\-FIRSTBOOT" "1" "" "systemd 239" "systemd-firstboot"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
systemd-firstboot, systemd-firstboot.service \- Initialize basic system settings on or before the first boot\-up of a system
.SH "SYNOPSIS"
.HP \w'\fBsystemd\-firstboot\fR\ 'u
\fBsystemd\-firstboot\fR [OPTIONS...]
.PP
systemd\-firstboot\&.service
.SH "DESCRIPTION"
.PP
\fBsystemd\-firstboot\fR
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
\fIConditionFirstBoot=yes\fR
is satisfied\&. This essentially means that
/etc
is empty, see
\fBsystemd.unit\fR(5)
for details\&.
.PP
The following settings may be set up:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The system locale, more specifically the two locale variables
\fILANG=\fR
and
\fILC_MESSAGES\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The system keyboard map
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The system time zone
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The system host name
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The machine ID of the system
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The root user\*(Aqs password
.RE
.PP
Each of the fields may either be queried interactively by users, set non\-interactively on the tool\*(Aqs command line, or be copied from a host system that is used to set up the system image\&.
.PP
If a setting is already initialized, it will not be overwritten and the user will not be prompted for the setting\&.
.PP
Note that this tool operates directly on the file system and does not involve any running system services, unlike
\fBlocalectl\fR(1),
\fBtimedatectl\fR(1)
or
\fBhostnamectl\fR(1)\&. This allows
\fBsystemd\-firstboot\fR
to operate on mounted but not booted disk images and in early boot\&. It is not recommended to use
\fBsystemd\-firstboot\fR
on the running system while it is up\&.
.SH "OPTIONS"
.PP
The following options are understood:
.PP
\fB\-\-root=\fR\fB\fIroot\fR\fR
.RS 4
Takes a directory path as an argument\&. All paths will be prefixed with the given alternate
\fIroot\fR
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\&.
.RE
.PP
\fB\-\-locale=\fR\fB\fILOCALE\fR\fR, \fB\-\-locale\-messages=\fR\fB\fILOCALE\fR\fR
.RS 4
Sets the system locale, more specifically the
\fILANG=\fR
and
\fILC_MESSAGES\fR
settings\&. The argument should be a valid locale identifier, such as
"de_DE\&.UTF\-8"\&. This controls the
\fBlocale.conf\fR(5)
configuration file\&.
.RE
.PP
\fB\-\-keymap=\fR\fB\fIKEYMAP\fR\fR
.RS 4
Sets the system keyboard layout\&. The argument should be a valid keyboard map, such as
"de\-latin1"\&. This controls the
"KEYMAP"
entry in the
\fBvconsole.conf\fR(5)
configuration file\&.
.RE
.PP
\fB\-\-timezone=\fR\fB\fITIMEZONE\fR\fR
.RS 4
Sets the system time zone\&. The argument should be a valid time zone identifier, such as
"Europe/Berlin"\&. This controls the
\fBlocaltime\fR(5)
symlink\&.
.RE
.PP
\fB\-\-hostname=\fR\fB\fIHOSTNAME\fR\fR
.RS 4
Sets the system hostname\&. The argument should be a host name, compatible with DNS\&. This controls the
\fBhostname\fR(5)
configuration file\&.
.RE
.PP
\fB\-\-machine\-id=\fR\fB\fIID\fR\fR
.RS 4
Sets the system\*(Aqs machine ID\&. This controls the
\fBmachine-id\fR(5)
file\&.
.RE
.PP
\fB\-\-root\-password=\fR\fB\fIPASSWORD\fR\fR, \fB\-\-root\-password\-file=\fR\fB\fIPATH\fR\fR
.RS 4
Sets the password of the system\*(Aqs root user\&. This creates a
\fBshadow\fR(5)
file\&. This setting exists in two forms:
\fB\-\-root\-password=\fR
accepts the password to set directly on the command line, and
\fB\-\-root\-password\-file=\fR
reads it from a file\&. Note that it is not recommended to specify passwords on the command line, as other users might be able to see them simply by invoking
\fBps\fR(1)\&.
.RE
.PP
\fB\-\-prompt\-locale\fR, \fB\-\-prompt\-keymap\fR, \fB\-\-prompt\-timezone\fR, \fB\-\-prompt\-hostname\fR, \fB\-\-prompt\-root\-password\fR
.RS 4
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\&.
.RE
.PP
\fB\-\-prompt\fR
.RS 4
Query the user for locale, keymap, timezone, hostname and root password\&. This is equivalent to specifying
\fB\-\-prompt\-locale\fR,
\fB\-\-prompt\-keymap\fR,
\fB\-\-prompt\-timezone\fR,
\fB\-\-prompt\-hostname\fR,
\fB\-\-prompt\-root\-password\fR
in combination\&.
.RE
.PP
\fB\-\-copy\-locale\fR, \fB\-\-copy\-keymap\fR, \fB\-\-copy\-timezone\fR, \fB\-\-copy\-root\-password\fR
.RS 4
Copy a specific basic setting from the host\&. This only works in combination with
\fB\-\-root=\fR
(see above)\&.
.RE
.PP
\fB\-\-copy\fR
.RS 4
Copy locale, keymap, time zone and root password from the host\&. This is equivalent to specifying
\fB\-\-copy\-locale\fR,
\fB\-\-copy\-keymap\fR,
\fB\-\-copy\-timezone\fR,
\fB\-\-copy\-root\-password\fR
in combination\&.
.RE
.PP
\fB\-\-setup\-machine\-id\fR
.RS 4
Initialize the system\*(Aqs machine ID to a random ID\&. This only works in combination with
\fB\-\-root=\fR\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.PP
\fB\-\-version\fR
.RS 4
Print a short version string and exit\&.
.RE
.SH "EXIT STATUS"
.PP
On success, 0 is returned, a non\-zero failure code otherwise\&.
.SH "KERNEL COMMAND LINE"
.PP
\fIsystemd\&.firstboot=\fR
.RS 4
Takes a boolean argument, defaults to on\&. If off,
systemd\-firstboot\&.service
won\*(Aqt interactively query the user for basic settings at first boot, even if those settings are not initialized yet\&.
.RE
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBlocale.conf\fR(5),
\fBvconsole.conf\fR(5),
\fBlocaltime\fR(5),
\fBhostname\fR(5),
\fBmachine-id\fR(5),
\fBshadow\fR(5),
\fBsystemd-machine-id-setup\fR(1),
\fBlocalectl\fR(1),
\fBtimedatectl\fR(1),
\fBhostnamectl\fR(1)
