Blob Blame History Raw
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<!-- SPDX-License-Identifier: LGPL-2.1+ -->

<refentry id="systemd-boot" conditional='ENABLE_EFI'
    xmlns:xi="http://www.w3.org/2001/XInclude">
  <refentryinfo>
    <title>systemd-boot</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-boot</refentrytitle>
    <manvolnum>7</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-boot</refname>
    <refname>sd-boot</refname>
    <refpurpose>A simple UEFI boot manager</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Description</title>

    <para><command>systemd-boot</command> (short: <command>sd-boot</command>) is a simple UEFI boot manager. It
    provides a graphical menu to select the entry to boot and an editor for the kernel command line. systemd-boot
    supports systems with UEFI firmware only.</para>

    <para>systemd-boot loads boot entry information from the EFI system partition (ESP), usually mounted at
    <filename>/boot</filename>, <filename>/efi</filename>, or <filename>/boot/efi</filename> during OS
    runtime. Configuration file fragments, kernels, initrds and other EFI images to boot generally need to reside on
    the ESP. Linux kernels must be built with <option>CONFIG_EFI_STUB</option> to be able to be directly executed as an
    EFI image. During boot systemd-boot automatically assembles a list of boot entries from the following
    sources:</para>

    <itemizedlist>
      <listitem><para>Boot entries defined with <ulink
      url="https://github.com/systemd/systemd/blob/master/doc/BOOT_LOADER_SPECIFICATION.md">Boot Loader
      Specification</ulink> description files located in <filename>/loader/entries/</filename> on the ESP. These
      usually describe Linux kernel images with associated initrd images, but alternatively may also describe
      arbitrary other EFI executables.</para></listitem>

      <listitem><para>Unified kernel images following the <ulink
      url="https://github.com/systemd/systemd/blob/master/doc/BOOT_LOADER_SPECIFICATION.md">Boot Loader
      Specification</ulink>, as executable EFI binaries in <filename>/EFI/Linux/</filename> on the ESP.
      </para></listitem>

      <listitem><para>The Microsoft Windows EFI boot manager, if installed</para></listitem>

      <listitem><para>The Apple MacOS X boot manager, if installed</para></listitem>

      <listitem><para>The EFI Shell binary, if installed</para></listitem>

      <listitem><para>A reboot into the UEFI firmware setup option, if supported by the firmware</para></listitem>
    </itemizedlist>

    <para><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry> may be
    used to copy kernel images onto the ESP and to generate description files compliant with the Boot Loader
    Specification. <citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> may be
    used from a running system to locate the ESP, list available entries, and install systemd-boot itself.</para>

    <para>systemd-boot will provide information about the time spent in UEFI firmware using the <ulink
    url="https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">Boot Loader Interface</ulink>. This
    information can be displayed using
    <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
    </para>
  </refsect1>

  <refsect1>
    <title>Key bindings</title>
    <para>The following keys may be used in the boot menu:</para>

    <variablelist>
      <varlistentry>
        <term>↑ (Up)</term>
        <term>↓ (Down)</term>
        <term>j</term>
        <term>k</term>
        <term>PageUp</term>
        <term>PageDown</term>
        <term>Home</term>
        <term>End</term>
        <listitem><para>Navigate up/down in the entry list</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>↵ (Enter)</term>
        <listitem><para>Boot selected entry</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>d</term>
        <listitem><para>Make selected entry the default</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>e</term>
        <listitem><para>Edit the kernel command line for selected entry</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>+</term>
        <term>t</term>
        <listitem><para>Increase the timeout before default entry is booted</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>-</term>
        <term>T</term>
        <listitem><para>Decrease the timeout</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>v</term>
        <listitem><para>Show systemd-boot, UEFI, and firmware versions</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>P</term>
        <listitem><para>Print status</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>Q</term>
        <listitem><para>Quit</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>h</term>
        <term>?</term>
        <listitem><para>Show a help screen</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>Ctrl + l</term>
        <listitem><para>Reprint the screen</para></listitem>
      </varlistentry>
    </variablelist>

    <para>The following keys may be used during bootup or in the boot menu to
    directly boot a specific entry:</para>

    <variablelist>
      <varlistentry>
        <term>l</term>
        <listitem><para>Linux</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>w</term>
        <listitem><para>Windows</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>a</term>
        <listitem><para>OS X</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>s</term>
        <listitem><para>EFI shell</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>1</term>
        <term>2</term>
        <term>3</term>
        <term>4</term>
        <term>5</term>
        <term>6</term>
        <term>7</term>
        <term>8</term>
        <term>9</term>
        <listitem><para>Boot entry number 1 … 9</para></listitem>
      </varlistentry>
    </variablelist>

    <para>In the editor, most keys simply insert themselves, but the following keys
    may be used to perform additional actions:</para>

    <variablelist>
      <varlistentry>
        <term>← (Left)</term>
        <term>→ (Right)</term>
        <term>Home</term>
        <term>End</term>
        <listitem><para>Navigate left/right</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>Esc</term>
        <listitem><para>Abort the edit and quit the editor</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>Ctrl + k</term>
        <listitem><para>Clear the command line</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>Ctrl + w</term>
        <term>Alt + Backspace</term>
        <listitem><para>Delete word backwards</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>Alt + d </term>
        <listitem><para>Delete word forwards</para></listitem>
      </varlistentry>

      <varlistentry>
        <term>↵ (Enter)</term>
        <listitem><para>Boot entry with the edited command line</para></listitem>
      </varlistentry>
    </variablelist>

    <para>Note that unless configured otherwise in the UEFI firmware, systemd-boot will
    use the US keyboard layout, so key labels might not match for keys like +/-.
    </para>
  </refsect1>

  <refsect1>
    <title>Files</title>

    <para>The files systemd-boot reads generally reside on the UEFI ESP which is usually mounted to
    <filename>/boot/</filename>, <filename>/efi/</filename> or <filename>/boot/efi</filename> during OS
    runtime. systemd-boot reads runtime configuration such as the boot timeout and default entry from
    <filename>/loader/loader.conf</filename> on the ESP (in combination with data read from EFI variables). See
    <citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Boot entry
    description files following the <ulink
    url="https://github.com/systemd/systemd/blob/master/doc/BOOT_LOADER_SPECIFICATION.md">Boot Loader
    Specification</ulink> are read from <filename>/loader/entries/</filename> on the ESP. Unified kernel boot entries
    following the <ulink url="https://github.com/systemd/systemd/blob/master/doc/BOOT_LOADER_SPECIFICATION.md">Boot
    Loader Specification</ulink> are read from <filename>/EFI/Linux/</filename> on the ESP.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <ulink url="https://github.com/systemd/systemd/blob/master/doc/BOOT_LOADER_SPECIFICATION.md">Boot Loader Specification</ulink>,
      <ulink url="https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">Boot Loader Interface</ulink>
    </para>
  </refsect1>
</refentry>