diff options
-rw-r--r-- | man/kernel-command-line.xml | 12 | ||||
-rw-r--r-- | man/systemd-firstboot.xml | 14 | ||||
-rw-r--r-- | src/firstboot/firstboot.c | 13 |
3 files changed, 38 insertions, 1 deletions
diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml index 1fa31a14b7..c86e45265f 100644 --- a/man/kernel-command-line.xml +++ b/man/kernel-command-line.xml @@ -353,6 +353,15 @@ <citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para> </listitem> </varlistentry> + + <varlistentry> + <term><varname>systemd.firstboot=</varname></term> + + <listitem><para>Takes a boolean argument, defaults to on. If off, + <citerefentry><refentrytitle>systemd-firstboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> + will not query the user for basic system settings, even if the system boots up for the first time and the + relevant settings are not initialized yet.</para></listitem> + </varlistentry> </variablelist> </refsect1> @@ -376,7 +385,8 @@ <citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-rfkill.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, - <citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> + <citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, + <citerefentry><refentrytitle>systemd-firstboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> </para> </refsect1> diff --git a/man/systemd-firstboot.xml b/man/systemd-firstboot.xml index b269e48113..4e3b1a3a81 100644 --- a/man/systemd-firstboot.xml +++ b/man/systemd-firstboot.xml @@ -241,6 +241,20 @@ </refsect1> <refsect1> + <title>Kernel Command Line</title> + + <variablelist class='kernel-commandline-options'> + <varlistentry> + <term><varname>systemd.firstboot=</varname></term> + + <listitem><para>Takes a boolean argument, defaults to on. If off <filename>systemd-firstboot.service</filename> + won't interactively query the user for basic settings at first boot, even if if the settings are not + initialized yet.</para></listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1> <title>See Also</title> <para> <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c index c9e8e54ee3..7c615abbc5 100644 --- a/src/firstboot/firstboot.c +++ b/src/firstboot/firstboot.c @@ -33,6 +33,7 @@ #include "mkdir.h" #include "parse-util.h" #include "path-util.h" +#include "proc-cmdline.h" #include "random-util.h" #include "string-util.h" #include "strv.h" @@ -825,6 +826,7 @@ static int parse_argv(int argc, char *argv[]) { } int main(int argc, char *argv[]) { + _cleanup_free_ char *enabled = NULL; int r; r = parse_argv(argc, argv); @@ -837,6 +839,17 @@ int main(int argc, char *argv[]) { umask(0022); + r = get_proc_cmdline_key("systemd.firstboot=", &enabled); + if (r < 0) + return r; + if (r > 0) { + r = parse_boolean(enabled); + if (r == 0) + goto finish; + if (r < 0) + log_warning_errno(r, "Failed to parse systemd.firstboot= kernel command line argument, ignoring: %s", enabled); + } + r = process_locale(); if (r < 0) goto finish; |