65 lines
2.7 KiB
XML
65 lines
2.7 KiB
XML
|
<section xmlns="http://docbook.org/ns/docbook"
|
|||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|||
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|||
|
version="5.0"
|
|||
|
xml:id="sec-boot-problems">
|
|||
|
|
|||
|
<title>Boot Problems</title>
|
|||
|
|
|||
|
<para>If NixOS fails to boot, there are a number of kernel command
|
|||
|
line parameters that may help you to identify or fix the issue. You
|
|||
|
can add these parameters in the GRUB boot menu by pressing “e” to
|
|||
|
modify the selected boot entry and editing the line starting with
|
|||
|
<literal>linux</literal>. The following are some useful kernel command
|
|||
|
line parameters that are recognised by the NixOS boot scripts or by
|
|||
|
systemd:
|
|||
|
|
|||
|
<variablelist>
|
|||
|
|
|||
|
<varlistentry><term><literal>boot.shell_on_fail</literal></term>
|
|||
|
<listitem><para>Start a root shell if something goes wrong in
|
|||
|
stage 1 of the boot process (the initial ramdisk). This is
|
|||
|
disabled by default because there is no authentication for the
|
|||
|
root shell.</para></listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry><term><literal>boot.debug1</literal></term>
|
|||
|
<listitem><para>Start an interactive shell in stage 1 before
|
|||
|
anything useful has been done. That is, no modules have been
|
|||
|
loaded and no file systems have been mounted, except for
|
|||
|
<filename>/proc</filename> and
|
|||
|
<filename>/sys</filename>.</para></listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry><term><literal>boot.trace</literal></term>
|
|||
|
<listitem><para>Print every shell command executed by the stage 1
|
|||
|
and 2 boot scripts.</para></listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry><term><literal>single</literal></term>
|
|||
|
<listitem><para>Boot into rescue mode (a.k.a. single user mode).
|
|||
|
This will cause systemd to start nothing but the unit
|
|||
|
<literal>rescue.target</literal>, which runs
|
|||
|
<command>sulogin</command> to prompt for the root password and
|
|||
|
start a root login shell. Exiting the shell causes the system to
|
|||
|
continue with the normal boot process.</para></listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
<varlistentry><term><literal>systemd.log_level=debug systemd.log_target=console</literal></term>
|
|||
|
<listitem><para>Make systemd very verbose and send log messages to
|
|||
|
the console instead of the journal.</para></listitem>
|
|||
|
</varlistentry>
|
|||
|
|
|||
|
</variablelist>
|
|||
|
|
|||
|
For more parameters recognised by systemd, see
|
|||
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
|
|||
|
|
|||
|
<para>If no login prompts or X11 login screens appear (e.g. due to
|
|||
|
hanging dependencies), you can press Alt+ArrowUp. If you’re lucky,
|
|||
|
this will start rescue mode (described above). (Also note that since
|
|||
|
most units have a 90-second timeout before systemd gives up on them,
|
|||
|
the <command>agetty</command> login prompts should appear eventually
|
|||
|
unless something is very wrong.)</para>
|
|||
|
|
|||
|
</section>
|