]>
Commit | Line | Data |
---|---|---|
d67ca9ab LP |
1 | <?xml version="1.0"?> |
2 | <!--*-nxml-*--> | |
3a54a157 ZJS |
3 | <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" |
4 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | |
0307f791 | 5 | <!-- SPDX-License-Identifier: LGPL-2.1+ --> |
d67ca9ab LP |
6 | <refentry id="systemd-gpt-auto-generator"> |
7 | ||
798d3a52 ZJS |
8 | <refentryinfo> |
9 | <title>systemd-gpt-auto-generator</title> | |
10 | <productname>systemd</productname> | |
798d3a52 ZJS |
11 | </refentryinfo> |
12 | ||
13 | <refmeta> | |
14 | <refentrytitle>systemd-gpt-auto-generator</refentrytitle> | |
15 | <manvolnum>8</manvolnum> | |
16 | </refmeta> | |
17 | ||
18 | <refnamediv> | |
19 | <refname>systemd-gpt-auto-generator</refname> | |
31ca5166 LP |
20 | <refpurpose>Generator for automatically discovering and mounting root, <filename>/home/</filename>, |
21 | <filename>/srv/</filename>, <filename>/var/</filename> and <filename>/var/tmp/</filename> partitions, as | |
22 | well as discovering and enabling swap partitions, based on GPT partition type GUIDs.</refpurpose> | |
798d3a52 ZJS |
23 | </refnamediv> |
24 | ||
25 | <refsynopsisdiv> | |
12b42c76 | 26 | <para><filename>/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</filename></para> |
798d3a52 ZJS |
27 | </refsynopsisdiv> |
28 | ||
29 | <refsect1> | |
30 | <title>Description</title> | |
31 | ||
aa4c0684 | 32 | <para><filename>systemd-gpt-auto-generator</filename> is a unit generator that automatically discovers |
31ca5166 LP |
33 | root, <filename>/home/</filename>, <filename>/srv/</filename>, <filename>/var/</filename>, |
34 | <filename>/var/tmp/</filename>, the EFI System Partition, the Extended Boot Loader Partition and swap | |
35 | partitions and creates mount and swap units for them, based on the partition type GUIDs of GUID partition | |
36 | tables (GPT), see <ulink url="https://uefi.org/specifications">UEFI Specification</ulink>, chapter 5. It | |
37 | implements the <ulink url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partitions | |
aa4c0684 LP |
38 | Specification</ulink>. Note that this generator has no effect on non-GPT systems, and on specific mount |
39 | points that are directories already containing files. Also, on systems where the units are explicitly | |
40 | configured (for example, listed in <citerefentry | |
41 | project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>), the | |
42 | units this generator creates are overridden, but additional implicit dependencies might be | |
43 | created.</para> | |
798d3a52 | 44 | |
b50a3a15 | 45 | <para>This generator will only look for the root partition on the same physical disk the EFI System |
31ca5166 LP |
46 | Partition (ESP) is located on. Note that support from the boot loader is required: the EFI variable |
47 | <varname>LoaderDevicePartUUID</varname> of the <constant>4a67b082-0a4c-41cf-b6c7-440b29bb8c4f</constant> | |
48 | vendor UUID is used to determine from which partition, and hence the disk from which the system was | |
49 | booted. If the boot loader does not set this variable, this generator will not be able to autodetect the | |
50 | root partition. See the <ulink url="https://systemd.io/BOOT_LOADER_INTERFACE">Boot Loader | |
51 | Interface</ulink> for details.</para> | |
798d3a52 | 52 | |
b50a3a15 ZJS |
53 | <para>Similarly, this generator will only look for the other partitions on the same physical disk as the |
54 | root partition. In this case, boot loader support is not required. These partitions will not be searched | |
55 | for on systems where the root file system is distributed on multiple disks, for example via btrfs RAID. | |
8d5a4f27 | 56 | </para> |
798d3a52 | 57 | |
b50a3a15 ZJS |
58 | <para><filename>systemd-gpt-auto-generator</filename> is useful for centralizing file system |
59 | configuration in the partition table and making configuration in <filename>/etc/fstab</filename> or on | |
60 | the kernel command line unnecessary.</para> | |
61 | ||
798d3a52 ZJS |
62 | <para>This generator looks for the partitions based on their |
63 | partition type GUID. The following partition type GUIDs are | |
64 | identified:</para> | |
65 | ||
66 | <table> | |
67 | <title>Partition Type GUIDs</title> | |
68 | <tgroup cols='3' align='left' colsep='1' rowsep='1'> | |
69 | <colspec colname="guid" /> | |
70 | <colspec colname="name" /> | |
aa4c0684 | 71 | <colspec colname="where" /> |
798d3a52 ZJS |
72 | <colspec colname="explanation" /> |
73 | <thead> | |
74 | <row> | |
75 | <entry>Partition Type GUID</entry> | |
76 | <entry>Name</entry> | |
aa4c0684 | 77 | <entry>Mount Point</entry> |
798d3a52 ZJS |
78 | <entry>Explanation</entry> |
79 | </row> | |
80 | </thead> | |
81 | <tbody> | |
82 | <row> | |
83 | <entry>44479540-f297-41b2-9af7-d131d5f0458a</entry> | |
84 | <entry><filename>Root Partition (x86)</filename></entry> | |
aa4c0684 | 85 | <entry><filename>/</filename></entry> |
798d3a52 ZJS |
86 | <entry>On 32-bit x86 systems, the first x86 root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry> |
87 | </row> | |
88 | <row> | |
89 | <entry>4f68bce3-e8cd-4db1-96e7-fbcaf984b709</entry> | |
90 | <entry><filename>Root Partition (x86-64)</filename></entry> | |
aa4c0684 | 91 | <entry><filename>/</filename></entry> |
798d3a52 ZJS |
92 | <entry>On 64-bit x86 systems, the first x86-64 root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry> |
93 | </row> | |
94 | <row> | |
95 | <entry>69dad710-2ce4-4e3c-b16c-21a1d49abed3</entry> | |
96 | <entry><filename>Root Partition (32-bit ARM)</filename></entry> | |
aa4c0684 | 97 | <entry><filename>/</filename></entry> |
798d3a52 ZJS |
98 | <entry>On 32-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry> |
99 | </row> | |
100 | <row> | |
101 | <entry>b921b045-1df0-41c3-af44-4c6f280d3fae</entry> | |
102 | <entry><filename>Root Partition (64-bit ARM)</filename></entry> | |
aa4c0684 | 103 | <entry><filename>/</filename></entry> |
798d3a52 ZJS |
104 | <entry>On 64-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry> |
105 | </row> | |
b793ddfa LW |
106 | <row> |
107 | <entry>993d8d3d-f80e-4225-855a-9daf8ed7ea97</entry> | |
108 | <entry><filename>Root Partition (Itanium/IA-64)</filename></entry> | |
aa4c0684 | 109 | <entry><filename>/</filename></entry> |
b793ddfa LW |
110 | <entry>On Itanium systems, the first Itanium root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry> |
111 | </row> | |
798d3a52 ZJS |
112 | <row> |
113 | <entry>933ac7e1-2eb4-4f13-b844-0e14e2aef915</entry> | |
114 | <entry>Home Partition</entry> | |
aa4c0684 | 115 | <entry><filename>/home/</filename></entry> |
31ca5166 | 116 | <entry>The first home partition on the disk the root partition is located on is mounted to <filename>/home/</filename>.</entry> |
798d3a52 ZJS |
117 | </row> |
118 | <row> | |
119 | <entry>3b8f8425-20e0-4f3b-907f-1a25a76f98e8</entry> | |
120 | <entry>Server Data Partition</entry> | |
aa4c0684 | 121 | <entry><filename>/srv/</filename></entry> |
31ca5166 LP |
122 | <entry>The first server data partition on the disk the root partition is located on is mounted to <filename>/srv/</filename>.</entry> |
123 | </row> | |
124 | <row> | |
125 | <entry>4d21b016-b534-45c2-a9fb-5c16e091fd2d</entry> | |
126 | <entry>Variable Data Partition</entry> | |
127 | <entry><filename>/var/</filename></entry> | |
128 | <entry>The first variable data partition on the disk the root partition is located on is mounted to <filename>/var/</filename> — under the condition its partition UUID matches the first 128 bit of the HMAC-SHA256 of the GPT type uuid of this partition keyed by the machine ID of the installation stored in <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</entry> | |
129 | </row> | |
130 | <row> | |
131 | <entry>7ec6f557-3bc5-4aca-b293-16ef5df639d1</entry> | |
132 | <entry>Temporary Data Partition</entry> | |
133 | <entry><filename>/var/tmp/</filename></entry> | |
134 | <entry>The first temporary data partition on the disk the root partition is located on is mounted to <filename>/var/tmp/</filename>.</entry> | |
798d3a52 ZJS |
135 | </row> |
136 | <row> | |
137 | <entry>0657fd6d-a4ab-43c4-84e5-0933c84b4f4f</entry> | |
138 | <entry>Swap</entry> | |
aa4c0684 | 139 | <entry>n/a</entry> |
798d3a52 ZJS |
140 | <entry>All swap partitions located on the disk the root partition is located on are enabled.</entry> |
141 | </row> | |
b52a109a LP |
142 | <row> |
143 | <entry>c12a7328-f81f-11d2-ba4b-00a0c93ec93b</entry> | |
144 | <entry>EFI System Partition (ESP)</entry> | |
aa4c0684 | 145 | <entry><filename>/efi/</filename> or <filename>/boot/</filename></entry> |
31ca5166 | 146 | <entry>The first ESP located on the disk the root partition is located on is mounted to <filename>/boot/</filename> or <filename>/efi/</filename>, see below.</entry> |
b52a109a | 147 | </row> |
aa4c0684 LP |
148 | <row> |
149 | <entry>bc13c2ff-59e6-4262-a352-b275fd6f7172</entry> | |
150 | <entry>Extended Boot Loader Partition</entry> | |
151 | <entry><filename>/boot/</filename></entry> | |
31ca5166 | 152 | <entry>The first Extended Boot Loader Partition is mounted to <filename>/boot/</filename>, see below.</entry> |
aa4c0684 | 153 | </row> |
798d3a52 ZJS |
154 | </tbody> |
155 | </tgroup> | |
156 | </table> | |
157 | ||
8d5a4f27 ZJS |
158 | <para>This generator understands the following attribute flags for partitions:</para> |
159 | ||
160 | <table> | |
161 | <title>Partition Attributes</title> | |
162 | <tgroup cols='4' align='left' colsep='1' rowsep='1'> | |
163 | <colspec colname="attribute" /> | |
164 | <colspec colname="value" /> | |
165 | <colspec colname="where" /> | |
166 | <colspec colname="explanation" /> | |
167 | <thead> | |
168 | <row> | |
169 | <entry>Name</entry> | |
170 | <entry>Value</entry> | |
171 | <entry>Applicable to</entry> | |
172 | <entry>Explanation</entry> | |
173 | </row> | |
174 | </thead> | |
175 | <tbody> | |
176 | <row> | |
177 | <entry><constant>GPT_FLAG_READ_ONLY</constant></entry> | |
178 | <entry>0x1000000000000000</entry> | |
31ca5166 | 179 | <entry><filename>/</filename>, <filename>/home/</filename>, <filename>/srv/</filename>, <filename>/var/</filename>, <filename>/var/tmp/</filename>, Extended Boot Loader Partition</entry> |
8d5a4f27 ZJS |
180 | <entry>Partition is mounted read-only</entry> |
181 | </row> | |
182 | ||
183 | <row> | |
184 | <entry><constant>GPT_FLAG_NO_AUTO</constant></entry> | |
185 | <entry>0x8000000000000000</entry> | |
31ca5166 | 186 | <entry><filename>/</filename>, <filename>/home/</filename>, <filename>/srv/</filename>, <filename>/var/</filename>, <filename>/var/tmp/</filename>, Extended Boot Loader Partition</entry> |
8d5a4f27 ZJS |
187 | <entry>Partition is not mounted automatically</entry> |
188 | </row> | |
189 | ||
190 | <row> | |
191 | <entry><constant>GPT_FLAG_NO_BLOCK_IO_PROTOCOL</constant></entry> | |
192 | <entry>0x0000000000000002</entry> | |
aa4c0684 | 193 | <entry>EFI System Partition (ESP)</entry> |
8d5a4f27 ZJS |
194 | <entry>Partition is not mounted automatically</entry> |
195 | </row> | |
196 | </tbody> | |
197 | </tgroup> | |
198 | </table> | |
199 | ||
31ca5166 LP |
200 | <para>The <filename>/home/</filename>, <filename>/srv/</filename>, <filename>/var/</filename> and |
201 | <filename>/var/tmp/</filename> partitions may be encrypted in LUKS format. In this case, a device mapper | |
202 | device is set up under the names <filename>/dev/mapper/home</filename>, | |
203 | <filename>/dev/mapper/srv</filename>, <filename>/dev/mapper/var</filename> and | |
204 | <filename>/dev/mapper/tmp</filename>. Note that this might create conflicts if the same partition is | |
205 | listed in <filename>/etc/crypttab</filename> with a different device mapper device name.</para> | |
35a05d8d | 206 | |
5337cccf AP |
207 | <para>When systemd is running in the initrd the <filename>/</filename> partition may be encrypted in LUKS |
208 | format as well. In this case, a device mapper device is set up under the name <filename>/dev/mapper/root</filename>, | |
209 | and a <filename>sysroot.mount</filename> is set up that mounts the device under <filename>/sysroot</filename>. | |
210 | For more information, see <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>. | |
211 | </para> | |
aa4c0684 LP |
212 | |
213 | <para>Mount and automount units for the EFI System Partition (ESP) are generated on EFI systems. The ESP | |
214 | is mounted to <filename>/boot/</filename> (except if an Extended Boot Loader partition exists, see | |
215 | below), unless a mount point directory <filename>/efi/</filename> exists, in which case it is mounted | |
216 | there. Since this generator creates an automount unit, the mount will only be activated on-demand, when | |
217 | accessed. On systems where <filename>/boot/</filename> (or <filename>/efi/</filename> if it exists) is an | |
218 | explicitly configured mount (for example, listed in <citerefentry | |
219 | project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>) or where | |
220 | the <filename>/boot/</filename> (or <filename>/efi/</filename>) mount point is non-empty, no mount units | |
221 | are generated.</para> | |
222 | ||
223 | <para>If the disk contains an Extended Boot Loader partition, as defined in the <ulink | |
224 | url="https://systemd.io/BOOT_LOADER_SPECIFICATION">Boot Loader Specification</ulink>, it is made | |
31ca5166 | 225 | available at <filename>/boot/</filename> (by means of an automount point, similar to the ESP, see |
aa4c0684 LP |
226 | above). If both an EFI System Partition and an Extended Boot Loader partition exist the latter is |
227 | preferably mounted to <filename>/boot/</filename>. Make sure to create both <filename>/efi/</filename> | |
228 | and <filename>/boot/</filename> to ensure both partitions are mounted.</para> | |
798d3a52 ZJS |
229 | |
230 | <para>When using this generator in conjunction with btrfs file | |
231 | systems, make sure to set the correct default subvolumes on them, | |
232 | using <command>btrfs subvolume set-default</command>.</para> | |
233 | ||
234 | <para><filename>systemd-gpt-auto-generator</filename> implements | |
b1c1a519 | 235 | <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para> |
798d3a52 ZJS |
236 | </refsect1> |
237 | ||
17ec531f ZJS |
238 | <refsect1> |
239 | <title>Kernel Command Line</title> | |
240 | ||
241 | <para><filename>systemd-gpt-auto-generator</filename> understands the following kernel command line | |
242 | parameters:</para> | |
243 | ||
244 | <variablelist class='kernel-commandline-options'> | |
245 | ||
246 | <varlistentry> | |
247 | <term><varname>systemd.gpt_auto</varname></term> | |
248 | <term><varname>rd.systemd.gpt_auto</varname></term> | |
249 | ||
250 | <listitem><para>Those options take an optional boolean argument, and default to yes. | |
251 | The generator is enabled by default, and a negative value may be used to disable it. | |
252 | </para></listitem> | |
253 | </varlistentry> | |
254 | ||
255 | <varlistentry> | |
256 | <term><varname>root=</varname></term> | |
257 | ||
258 | <listitem><para>When used with the special value <literal>gpt-auto</literal>, automatic discovery of | |
5238e957 | 259 | the root partition based on the GPT partition type is enabled. Any other value disables this |
17ec531f ZJS |
260 | generator.</para></listitem> |
261 | </varlistentry> | |
262 | ||
263 | <varlistentry> | |
264 | <term><varname>rw</varname></term> | |
265 | <term><varname>ro</varname></term> | |
266 | ||
267 | <listitem><para>Mount the root partition read-write or read-only <emphasis>initially</emphasis>.</para> | |
268 | ||
269 | <para>Note that unlike most kernel command line options these settings do not override configuration | |
270 | in the file system, and the file system may be remounted later. See | |
271 | <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. | |
272 | </para></listitem> | |
273 | </varlistentry> | |
274 | </variablelist> | |
275 | </refsect1> | |
276 | ||
798d3a52 ZJS |
277 | <refsect1> |
278 | <title>See Also</title> | |
279 | <para> | |
280 | <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, | |
281 | <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
282 | <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
283 | <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, | |
798d3a52 | 284 | <citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
31ca5166 | 285 | <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
3ba3a79d ZJS |
286 | <citerefentry project='die-net'><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
287 | <citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, | |
288 | <citerefentry project='man-pages'><refentrytitle>btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry> | |
798d3a52 ZJS |
289 | </para> |
290 | </refsect1> | |
d67ca9ab LP |
291 | |
292 | </refentry> |