summaryrefslogtreecommitdiff
path: root/man/sd-boot.xml
blob: d5e50b04873b3cec91a580aa0904e647af21c1e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<?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="sd-boot" conditional='ENABLE_EFI'
    xmlns:xi="http://www.w3.org/2001/XInclude">
  <refentryinfo>
    <title>sd-boot</title>
    <productname>systemd</productname>

    <authorgroup>
      <author>
        <contrib>I wrote this page</contrib>
        <firstname>Zbigniew</firstname>
        <surname>Jędrzejewski-Szmek</surname>
        <email>zbyszek@in.waw.pl</email>
      </author>
    </authorgroup>
  </refentryinfo>

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

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

  <refsect1>
    <title>Description</title>

    <para><command>systemd-boot</command> or <command>sd-boot</command> is a simple
    UEFI boot manager, previously known as <command>gummiboot</command>. It provides
    a graphical menu to select the entry to boot and an editor for the kernel command
    line. sd-boot is only useful on machines using UEFI.
    </para>

    <para>sd-boot loads information from the EFI system partition (ESP), usually
    mounted at <filename>/boot</filename>, <filename>/efi</filename>, or
    <filename>/boot/efi</filename>. Configuration file fragments, kernels, initrds,
    other EFI images 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. sd-boot will automatically list other boot entries registered as EFI boot
    variables, and a list of kernels from configuration files following the <ulink
    url="https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot Loader
    Specification</ulink> located under <filename>/loader/entries/</filename> on the
    ESP.</para>

    <para><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    may be used to copy kernel images onto the ESP and to generate entries 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 sd-boot itself.</para>

    <para>sd-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>Configuration</title>

    <para>sd-boot reads configuration like the timeout and default entry from
    <filename>/loader/loader.conf</filename> on the ESP and from EFI variables. See
    <citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</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 sd-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>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, sd-boot will
    use the US keyboard layout, so key labels might not match for keys like +/-.
    </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://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot Loader Specification</ulink>,
      <ulink url="https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">Boot Loader Interface</ulink>,
      <ulink url="https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/">upstream wiki page</ulink>
    </para>
  </refsect1>
</refentry>