1REPART.D(5) repart.d REPART.D(5)
2
3
4
6 repart.d - Partition Definition Files for Automatic Boot-Time
7 Repartitioning
8
10 /etc/repart.d/*.conf
11 /run/repart.d/*.conf
12 /usr/lib/repart.d/*.conf
13
14
16 repart.d/*.conf files describe basic properties of partitions of block
17 devices of the local system. They may be used to declare types, names
18 and sizes of partitions that shall exist. The systemd-repart(8) service
19 reads these files and attempts to add new partitions currently missing
20 and enlarge existing partitions according to these definitions.
21 Operation is generally incremental, i.e. when applied, what exists
22 already is left intact, and partitions are never shrunk, moved or
23 deleted.
24
25 These definition files are useful for implementing operating system
26 images that are prepared and delivered with minimally sized images (for
27 example lacking any state or swap partitions), and which on first boot
28 automatically take possession of any remaining disk space following a
29 few basic rules.
30
31 Currently, support for partition definition files is only implemented
32 for GPT partitition tables.
33
34 Partition files are generally matched against any partitions already
35 existing on disk in a simple algorithm: the partition files are sorted
36 by their filename (ignoring the directory prefix), and then compared in
37 order against existing partitions matching the same partition type
38 UUID. Specifically, the first existing partition with a specific
39 partition type UUID is assigned the first definition file with the same
40 partition type UUID, and the second existing partition with a specific
41 type UUID the second partition file with the same type UUID, and so on.
42 Any left-over partition files that have no matching existing partition
43 are assumed to define new partition that shall be created. Such
44 partitions are appended to the end of the partition table, in the order
45 defined by their names utilizing the first partition slot greater than
46 the highest slot number currently in use. Any existing partitions that
47 have no matching partition file are left as they are.
48
49 Note that these definitions may only be used to created and initialize
50 new partitions or grow existing ones. In the latter case it will not
51 grow the contained files systems however; separate mechanisms, such as
52 systemd-growfs(8) may be used to grow the file systems inside of these
53 partitions.
54
56 Type=
57 The GPT partition type UUID to match. This may be a GPT partition
58 type UUID such as 4f68bce3-e8cd-4db1-96e7-fbcaf984b709, or one of
59 the following special identifiers:
60
61 Table 1. GPT partition type identifiers
62 ┌──────────────────────┬────────────────────────────┐
63 │Identifier │ Explanation │
64 ├──────────────────────┼────────────────────────────┤
65 │esp │ EFI System Partition │
66 ├──────────────────────┼────────────────────────────┤
67 │xbootldr │ Extended Boot Loader │
68 │ │ Partition │
69 ├──────────────────────┼────────────────────────────┤
70 │swap │ Swap partition │
71 ├──────────────────────┼────────────────────────────┤
72 │home │ Home (/home/) partition │
73 ├──────────────────────┼────────────────────────────┤
74 │srv │ Server data (/srv/) │
75 │ │ partition │
76 ├──────────────────────┼────────────────────────────┤
77 │var │ Variable data (/var/) │
78 │ │ partition │
79 ├──────────────────────┼────────────────────────────┤
80 │tmp │ Temporary data (/var/tmp/) │
81 │ │ partition │
82 ├──────────────────────┼────────────────────────────┤
83 │linux-generic │ Generic Linux file system │
84 │ │ partition │
85 ├──────────────────────┼────────────────────────────┤
86 │root │ Root file system partition │
87 │ │ type appropriate for the │
88 │ │ local architecture (an │
89 │ │ alias for an architecture │
90 │ │ root file system partition │
91 │ │ type listed below, e.g. │
92 │ │ root-x86-64) │
93 ├──────────────────────┼────────────────────────────┤
94 │root-verity │ Verity data for the root │
95 │ │ file system partition for │
96 │ │ the local architecture │
97 ├──────────────────────┼────────────────────────────┤
98 │root-secondary │ Root file system partition │
99 │ │ of the secondary │
100 │ │ architecture of the local │
101 │ │ architecture (usually the │
102 │ │ matching 32bit │
103 │ │ architecture for the local │
104 │ │ 64bit architecture) │
105 ├──────────────────────┼────────────────────────────┤
106 │root-secondary-verity │ Verity data for the root │
107 │ │ file system partition of │
108 │ │ the secondary architecture │
109 ├──────────────────────┼────────────────────────────┤
110 │root-x86 │ Root file system partition │
111 │ │ for the x86 (32bit, aka │
112 │ │ i386) architecture │
113 ├──────────────────────┼────────────────────────────┤
114 │root-x86-verity │ Verity data for the x86 │
115 │ │ (32bit) root file system │
116 │ │ partition │
117 ├──────────────────────┼────────────────────────────┤
118 │root-x86-64 │ Root file system partition │
119 │ │ for the x86_64 (64bit, aka │
120 │ │ amd64) architecture │
121 ├──────────────────────┼────────────────────────────┤
122 │root-x86-64-verity │ Verity data for the x86_64 │
123 │ │ (64bit) root file system │
124 │ │ partition │
125 ├──────────────────────┼────────────────────────────┤
126 │root-arm │ Root file system partition │
127 │ │ for the ARM (32bit) │
128 │ │ architecture │
129 ├──────────────────────┼────────────────────────────┤
130 │root-arm-verity │ Verity data for the ARM │
131 │ │ (32bit) root file system │
132 │ │ partition │
133 ├──────────────────────┼────────────────────────────┤
134 │root-arm64 │ Root file system partition │
135 │ │ for the ARM (64bit, aka │
136 │ │ aarch64) architecture │
137 ├──────────────────────┼────────────────────────────┤
138 │root-arm64-verity │ Verity data for the ARM │
139 │ │ (64bit, aka aarch64) root │
140 │ │ file system partition │
141 ├──────────────────────┼────────────────────────────┤
142 │root-ia64 │ Root file system partition │
143 │ │ for the ia64 architecture │
144 ├──────────────────────┼────────────────────────────┤
145 │root-ia64-verity │ Verity data for the ia64 │
146 │ │ root file system partition │
147 ├──────────────────────┼────────────────────────────┤
148 │root-riscv32 │ Root file system partition │
149 │ │ for the RISC-V 32-bit │
150 │ │ architecture │
151 ├──────────────────────┼────────────────────────────┤
152 │root-riscv32-verity │ Verity data for the RISC-V │
153 │ │ 32-bit root file system │
154 │ │ partition │
155 ├──────────────────────┼────────────────────────────┤
156 │root-riscv64 │ Root file system partition │
157 │ │ for the RISC-V 64-bit │
158 │ │ architecture │
159 ├──────────────────────┼────────────────────────────┤
160 │root-riscv64-verity │ Verity data for the RISC-V │
161 │ │ 64-bit root file system │
162 │ │ partition │
163 ├──────────────────────┼────────────────────────────┤
164 │usr │ /usr/ file system │
165 │ │ partition type appropriate │
166 │ │ for the local architecture │
167 │ │ (an alias for an │
168 │ │ architecture /usr/ file │
169 │ │ system partition type │
170 │ │ listed below, e.g. │
171 │ │ usr-x86-64) │
172 ├──────────────────────┼────────────────────────────┤
173 │usr-verity │ Verity data for the /usr/ │
174 │ │ file system partition for │
175 │ │ the local architecture │
176 ├──────────────────────┼────────────────────────────┤
177 │usr-secondary │ /usr/ file system │
178 │ │ partition of the secondary │
179 │ │ architecture of the local │
180 │ │ architecture (usually the │
181 │ │ matching 32bit │
182 │ │ architecture for the local │
183 │ │ 64bit architecture) │
184 ├──────────────────────┼────────────────────────────┤
185 │usr-secondary-verity │ Verity data for the /usr/ │
186 │ │ file system partition of │
187 │ │ the secondary architecture │
188 ├──────────────────────┼────────────────────────────┤
189 │usr-x86 │ /usr/ file system │
190 │ │ partition for the x86 │
191 │ │ (32bit, aka i386) │
192 │ │ architecture │
193 ├──────────────────────┼────────────────────────────┤
194 │usr-x86-verity │ Verity data for the x86 │
195 │ │ (32bit) /usr/ file system │
196 │ │ partition │
197 ├──────────────────────┼────────────────────────────┤
198 │usr-x86-64 │ /usr/ file system │
199 │ │ partition for the x86_64 │
200 │ │ (64bit, aka amd64) │
201 │ │ architecture │
202 ├──────────────────────┼────────────────────────────┤
203 │usr-x86-64-verity │ Verity data for the x86_64 │
204 │ │ (64bit) /usr/ file system │
205 │ │ partition │
206 ├──────────────────────┼────────────────────────────┤
207 │usr-arm │ /usr/ file system │
208 │ │ partition for the ARM │
209 │ │ (32bit) architecture │
210 ├──────────────────────┼────────────────────────────┤
211 │usr-arm-verity │ Verity data for the ARM │
212 │ │ (32bit) /usr/ file system │
213 │ │ partition │
214 ├──────────────────────┼────────────────────────────┤
215 │usr-arm64 │ /usr/ file system │
216 │ │ partition for the ARM │
217 │ │ (64bit, aka aarch64) │
218 │ │ architecture │
219 ├──────────────────────┼────────────────────────────┤
220 │usr-arm64-verity │ Verity data for the ARM │
221 │ │ (64bit, aka aarch64) /usr/ │
222 │ │ file system partition │
223 ├──────────────────────┼────────────────────────────┤
224 │usr-ia64 │ /usr/ file system │
225 │ │ partition for the ia64 │
226 │ │ architecture │
227 ├──────────────────────┼────────────────────────────┤
228 │usr-ia64-verity │ Verity data for the ia64 │
229 │ │ /usr/ file system │
230 │ │ partition │
231 ├──────────────────────┼────────────────────────────┤
232 │usr-riscv32 │ /usr/ file system │
233 │ │ partition for the RISC-V │
234 │ │ 32-bit architecture │
235 ├──────────────────────┼────────────────────────────┤
236 │usr-riscv32-verity │ Verity data for the RISC-V │
237 │ │ 32-bit /usr/ file system │
238 │ │ partition │
239 ├──────────────────────┼────────────────────────────┤
240 │usr-riscv64 │ /usr/ file system │
241 │ │ partition for the RISC-V │
242 │ │ 64-bit architecture │
243 ├──────────────────────┼────────────────────────────┤
244 │usr-riscv64-verity │ Verity data for the RISC-V │
245 │ │ 64-bit /usr/ file system │
246 │ │ partition │
247 └──────────────────────┴────────────────────────────┘
248 This setting defaults to linux-generic.
249
250 Most of the partition type UUIDs listed above are defined in the
251 Discoverable Partitions Specification[1].
252
253 Label=
254 The textual label to assign to the partition if none is assigned
255 yet. Note that this setting is not used for matching. It is also
256 not used when a label is already set for an existing partition. It
257 is thus only used when a partition is newly created or when an
258 existing one had a no label set (that is: an empty label). If not
259 specified a label derived from the partition type is automatically
260 used. Simple specifier expansion is supported, see below.
261
262 UUID=
263 The UUID to assign to the partition if none is assigned yet. Note
264 that this setting is not used for matching. It is also not used
265 when a UUID is already set for an existing partition. It is thus
266 only used when a partition is newly created or when an existing one
267 had a all-zero UUID set. If not specified a UUID derived from the
268 partition type is automatically used.
269
270 Priority=
271 A numeric priority to assign to this partition, in the range
272 -2147483648...2147483647, with smaller values indicating higher
273 priority, and higher values indicating smaller priority. This
274 priority is used in case the configured size constraints on the
275 defined partitions do not permit fitting all partitions onto the
276 available disk space. If the partitions do not fit, the highest
277 numeric partition priority of all defined partitions is determined,
278 and all defined partitions with this priority are removed from the
279 list of new partitions to create (which may be multiple, if the
280 same priority is used for multiple partitions). The fitting
281 algorithm is then tried again. If the partitions still do not fit,
282 the now highest numeric partition priority is determined, and the
283 matching partitions removed too, and so on. Partitions of a
284 priority of 0 or lower are never removed. If all partitions with a
285 priority above 0 are removed and the partitions still do not fit on
286 the device the operation fails. Note that this priority has no
287 effect on ordering partitions, for that use the alphabetical order
288 of the filenames of the partition definition files. Defaults to 0.
289
290 Weight=
291 A numeric weight to assign to this partition in the range
292 0...1000000. Available disk space is assigned the defined
293 partitions according to their relative weights (subject to the size
294 constraints configured with SizeMinBytes=, SizeMaxBytes=), so that
295 a partition with weight 2000 gets double the space as one with
296 weight 1000, and a partition with weight 333 a third of that.
297 Defaults to 1000.
298
299 The Weight= setting is used to distribute available disk space in
300 an "elastic" fashion, based on the disk size and existing
301 partitions. If a partition shall have a fixed size use both
302 SizeMinBytes= and SizeMaxBytes= with the same value in order to
303 fixate the size to one value, in which case the weight has no
304 effect.
305
306 PaddingWeight=
307 Similar to Weight= but sets a weight for the free space after the
308 partition (the "padding"). When distributing available space the
309 weights of all partitions and all defined padding is summed, and
310 then each partition and padding gets the fraction defined by its
311 weight. Defaults to 0, i.e. by default no padding is applied.
312
313 Padding is useful if empty space shall be left for later additions
314 or a safety margin at the end of the device or between partitions.
315
316 SizeMinBytes=, SizeMaxBytes=
317 Specifies minimum and maximum size constraints in bytes. Takes the
318 usual K, M, G, T, ... suffixes (to the base of 1024). If
319 SizeMinBytes= is specified the partition is created at or grown to
320 at least the specified size. If SizeMaxBytes= is specified the
321 partition is created at or grown to at most the specified size. The
322 precise size is determined through the weight value value
323 configured with Weight=, see above. When SizeMinBytes= is set equal
324 to SizeMaxBytes= the configured weight has no effect as the
325 partition is explicitly sized to the specified fixed value. Note
326 that partitions are never created smaller than 4096 bytes, and
327 since partitions are never shrunk the previous size of the
328 partition (in case the partition already exists) is also enforced
329 as lower bound for the new size. The values should be specified as
330 multiples of 4096 bytes, and are rounded upwards (in case of
331 SizeMinBytes=) or downwards (in case of SizeMaxBytes=) otherwise.
332 If the backing device does not provide enough space to fulfill the
333 constraints placing the partition will fail. For partitions that
334 shall be created, depending on the setting of Priority= (see above)
335 the partition might be dropped and the placing algorithm restarted.
336 By default a minimum size constraint of 10M and no maximum size
337 constraint is set.
338
339 PaddingMinBytes=, PaddingMaxBytes=
340 Specifies minimum and maximum size constraints in bytes for the
341 free space after the partition (the "padding"). Semantics are
342 similar to SizeMinBytes= and SizeMaxBytes=, except that unlike
343 partition sizes free space can be shrunk and can be as small as
344 zero. By default no size constraints on padding are set, so that
345 only PaddingWeight= determines the size of the padding applied.
346
347 CopyBlocks=
348 Takes a path to a regular file, block device node or directory. If
349 specified and the partition is newly created the data from the
350 specified path is written to the newly created partition, on the
351 block level. If a directory is specified the backing block device
352 of the file system the directory is on is determined and the data
353 read directly from that. This option is useful to efficiently
354 replicate existing file systems on the block level on a new
355 partition, for example to build a simple OS installer or OS image
356 builder.
357
358 The file specified here must have a size that is a multiple of the
359 basic block size 512 and not be empty. If this option is used, the
360 size allocation algorithm is slightly altered: the partition is
361 created as least as big as required to fit the data in, i.e. the
362 data size is an additional minimum size value taken into
363 consideration for the allocation algorithm, similar to and in
364 addition to the SizeMin= value configured above.
365
366 This option has no effect if the partition it is declared for
367 already exists, i.e. existing data is never overwritten. Note that
368 the data is copied in before the partition table is updated, i.e.
369 before the partition actually is persistently created. This
370 provides robustness: it is guaranteed that the partition either
371 doesn't exist or exists fully populated; it is not possible that
372 the partition exists but is not or only partially populated.
373
374 This option cannot be combined with Format= or CopyFiles=.
375
376 Format=
377 Takes a file system name, such as "ext4", "btrfs", "xfs" or "vfat",
378 or the special value "swap". If specified and the partition is
379 newly created it is formatted with the specified file system (or as
380 swap device). The file system UUID and label are automatically
381 derived from the partition UUID and label. If this option is used,
382 the size allocation algorithm is slightly altered: the partition is
383 created as least as big as required for the minimal file system of
384 the specified type (or 4KiB if the minimal size is not known).
385
386 This option has no effect if the partition already exists.
387
388 Similar to the behaviour of CopyBlocks= the file system is
389 formatted before the partition is created, ensuring that the
390 partition only ever exists with a fully initialized file system.
391
392 This option cannot be combined with CopyBlocks=.
393
394 CopyFiles=
395 Takes a pair of colon separated absolute file system paths. The
396 first path refers to a source file or directory on the host, the
397 second path refers to a target in the file system of the newly
398 created partition and formatted file system. This setting may be
399 used to copy files or directories from the host into the file
400 system that is created due to the Format= option. If CopyFiles= is
401 used without Format= specified explicitly, "Format=" with a
402 suitable default is implied (currently "ext4", but this may change
403 in the future). This option may be used multiple times to copy
404 multiple files or directories from host into the newly formatted
405 file system. The colon and second path may be omitted in which case
406 the source path is also used as the target path (relative to the
407 root of the newly created file system). If the source path refers
408 to a directory it is copied recursively.
409
410 This option has no effect if the partition already exists: it
411 cannot be used to copy additional files into an existing partition,
412 it may only be used to populate a file system created anew.
413
414 The copy operation is executed before the file system is registered
415 in the partition table, thus ensuring that a file system populated
416 this way only ever exists fully initialized.
417
418 This option cannot be combined with CopyBlocks=.
419
420 Encrypt=
421 Takes one of "off", "key-file", "tpm2" and "key-file+tpm2"
422 (alternatively, also accepts a boolean value, which is mapped to
423 "off" when false, and "key-file" when true). Defaults to "off". If
424 not "off" the partition will be formatted with a LUKS2 superblock,
425 before the blocks configured with CopyBlocks= are copied in or the
426 file system configured with Format= is created.
427
428 The LUKS2 UUID is automatically derived from the partition UUID in
429 a stable fashion. If "key-file" or "key-file+tpm2" is used a key is
430 added to the LUKS2 superblock, configurable with the --key-file=
431 switch to systemd-repart. If "tpm2" or "key-file+tpm2" is used a
432 key is added to the LUKS2 superblock that is enrolled to the local
433 TPM2 chip, as configured with the --tpm2-device= and --tpm2-pcrs=
434 options to systemd-repart.
435
436 When used this slightly alters the size allocation logic as the
437 implicit, minimal size limits of Format= and CopyBlocks= are
438 increased by the space necessary for the LUKS2 superblock (see
439 above).
440
441 This option has no effect if the partition already exists.
442
443 FactoryReset=
444 Takes a boolean argument. If specified the partition is marked for
445 removal during a factory reset operation. This functionality is
446 useful to implement schemes where images can be reset into their
447 original state by removing partitions and creating them anew.
448 Defaults to off.
449
451 Specifiers may be used in the Label= setting. The following expansions
452 are understood:
453
454 Table 2. Specifiers available
455 ┌──────────┬─────────────────────┬────────────────────────┐
456 │Specifier │ Meaning │ Details │
457 ├──────────┼─────────────────────┼────────────────────────┤
458 │"%a" │ Architecture │ A short string │
459 │ │ │ identifying the │
460 │ │ │ architecture of the │
461 │ │ │ local system. A │
462 │ │ │ string such as x86, │
463 │ │ │ x86-64 or arm64. │
464 │ │ │ See the │
465 │ │ │ architectures │
466 │ │ │ defined for │
467 │ │ │ ConditionArchitecture= │
468 │ │ │ in systemd.unit(5) │
469 │ │ │ for a full list. │
470 ├──────────┼─────────────────────┼────────────────────────┤
471 │"%b" │ Boot ID │ The boot ID of the │
472 │ │ │ running system, │
473 │ │ │ formatted as string. │
474 │ │ │ See random(4) for more │
475 │ │ │ information. │
476 ├──────────┼─────────────────────┼────────────────────────┤
477 │"%B" │ Operating system │ The operating system │
478 │ │ build ID │ build identifier of │
479 │ │ │ the running system, as │
480 │ │ │ read from the │
481 │ │ │ BUILD_ID= field of │
482 │ │ │ /etc/os-release. If │
483 │ │ │ not set, resolves to │
484 │ │ │ an empty string. See │
485 │ │ │ os-release(5) for more │
486 │ │ │ information. │
487 ├──────────┼─────────────────────┼────────────────────────┤
488 │"%H" │ Host name │ The hostname of the │
489 │ │ │ running system. │
490 ├──────────┼─────────────────────┼────────────────────────┤
491 │"%l" │ Short host name │ The hostname of the │
492 │ │ │ running system, │
493 │ │ │ truncated at the first │
494 │ │ │ dot to remove any │
495 │ │ │ domain component. │
496 ├──────────┼─────────────────────┼────────────────────────┤
497 │"%m" │ Machine ID │ The machine ID of the │
498 │ │ │ running system, │
499 │ │ │ formatted as string. │
500 │ │ │ See machine-id(5) for │
501 │ │ │ more information. │
502 ├──────────┼─────────────────────┼────────────────────────┤
503 │"%o" │ Operating system ID │ The operating system │
504 │ │ │ identifier of the │
505 │ │ │ running system, as │
506 │ │ │ read from the ID= │
507 │ │ │ field of │
508 │ │ │ /etc/os-release. See │
509 │ │ │ os-release(5) for more │
510 │ │ │ information. │
511 ├──────────┼─────────────────────┼────────────────────────┤
512 │"%v" │ Kernel release │ Identical to uname -r │
513 │ │ │ output. │
514 ├──────────┼─────────────────────┼────────────────────────┤
515 │"%w" │ Operating system │ The operating system │
516 │ │ version ID │ version identifier of │
517 │ │ │ the running system, as │
518 │ │ │ read from the │
519 │ │ │ VERSION_ID= field of │
520 │ │ │ /etc/os-release. If │
521 │ │ │ not set, resolves to │
522 │ │ │ an empty string. See │
523 │ │ │ os-release(5) for more │
524 │ │ │ information. │
525 ├──────────┼─────────────────────┼────────────────────────┤
526 │"%W" │ Operating system │ The operating system │
527 │ │ variant ID │ variant identifier of │
528 │ │ │ the running system, as │
529 │ │ │ read from the │
530 │ │ │ VARIANT_ID= field of │
531 │ │ │ /etc/os-release. If │
532 │ │ │ not set, resolves to │
533 │ │ │ an empty string. See │
534 │ │ │ os-release(5) for more │
535 │ │ │ information. │
536 ├──────────┼─────────────────────┼────────────────────────┤
537 │"%%" │ Single percent sign │ Use "%%" in place of │
538 │ │ │ "%" to specify a │
539 │ │ │ single percent sign. │
540 └──────────┴─────────────────────┴────────────────────────┘
541
543 Example 1. Grow the root partition to the full disk size at first boot
544
545 With the following file the root partition is automatically grown to
546 the full disk if possible during boot.
547
548 # /usr/lib/repart.d/50-root.conf
549 [Partition]
550 Type=root
551
552
553 Example 2. Create a swap and home partition automatically on boot, if
554 missing
555
556 The home partition gets all available disk space while the swap
557 partition gets 1G at most and 64M at least. We set a priority > 0 on
558 the swap partition to ensure the swap partition is not used if not
559 enough space is available. For every three bytes assigned to the home
560 partition the swap partition gets assigned one.
561
562 # /usr/lib/repart.d/60-home.conf
563 [Partition]
564 Type=home
565
566 # /usr/lib/repart.d/70-swap.conf
567 [Partition]
568 Type=swap
569 SizeMinBytes=64M
570 SizeMaxBytes=1G
571 Priority=1
572 Weight=333
573
574
575 Example 3. Create B partitions in an A/B Verity setup, if missing
576
577 Let's say the vendor intends to update OS images in an A/B setup, i.e.
578 with two root partitions (and two matching Verity partitions) that
579 shall be used alternatingly during upgrades. To minimize image sizes
580 the original image is shipped only with one root and one Verity
581 partition (the "A" set), and the second root and Verity partitions (the
582 "B" set) shall be created on first boot on the free space on the
583 medium.
584
585 # /usr/lib/repart.d/50-root.conf
586 [Partition]
587 Type=root
588 SizeMinBytes=512M
589 SizeMaxBytes=512M
590
591 # /usr/lib/repart.d/60-root-verity.conf
592 [Partition]
593 Type=root-verity
594 SizeMinBytes=64M
595 SizeMaxBytes=64M
596
597 The definitions above cover the "A" set of root partition (of a fixed
598 512M size) and Verity partition for the root partition (of a fixed 64M
599 size). Let's use symlinks to create the "B" set of partitions, since
600 after all they shall have the same properties and sizes as the "A" set.
601
602 # ln -s 50-root.conf /usr/lib/repart.d/70-root-b.conf
603 # ln -s 60-root-verity.conf /usr/lib/repart.d/80-root-verity-b.conf
604
605
607 systemd(1), systemd-repart(8), sfdisk(8), systemd-cryptenroll(1)
608
610 1. Discoverable Partitions Specification
611 https://systemd.io/DISCOVERABLE_PARTITIONS
612
613
614
615systemd 248 REPART.D(5)