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>
							 |