]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/systemd-fstab-generator.xml
travis: add more ASan options
[thirdparty/systemd.git] / man / systemd-fstab-generator.xml
CommitLineData
059b37cc
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+ -->
059b37cc
LP
6<refentry id="systemd-fstab-generator">
7
798d3a52
ZJS
8 <refentryinfo>
9 <title>systemd-fstab-generator</title>
10 <productname>systemd</productname>
798d3a52
ZJS
11 </refentryinfo>
12
13 <refmeta>
14 <refentrytitle>systemd-fstab-generator</refentrytitle>
15 <manvolnum>8</manvolnum>
16 </refmeta>
17
18 <refnamediv>
19 <refname>systemd-fstab-generator</refname>
20 <refpurpose>Unit generator for /etc/fstab</refpurpose>
21 </refnamediv>
22
23 <refsynopsisdiv>
12b42c76 24 <para><filename>/usr/lib/systemd/system-generators/systemd-fstab-generator</filename></para>
798d3a52
ZJS
25 </refsynopsisdiv>
26
27 <refsect1>
28 <title>Description</title>
29
30 <para><filename>systemd-fstab-generator</filename> is a generator
31 that translates <filename>/etc/fstab</filename> (see
3ba3a79d 32 <citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
798d3a52
ZJS
33 for details) into native systemd units early at boot and when
34 configuration of the system manager is reloaded. This will
35 instantiate mount and swap units as necessary.</para>
36
37 <para>The <varname>passno</varname> field is treated like a simple
38 boolean, and the ordering information is discarded. However, if
39 the root file system is checked, it is checked before all the
40 other file systems.</para>
41
42 <para>See
43 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
44 and
45 <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
46 for more information about special <filename>/etc/fstab</filename>
47 mount options this generator understands.</para>
48
634735b5
CW
49 <para>One special topic is handling of symbolic links. Historical init
50 implementations supported symlinks in <filename>/etc/fstab</filename>.
51 Because mount units will refuse mounts where the target is a symbolic link,
52 this generator will resolve any symlinks as far as possible when processing
53 <filename>/etc/fstab</filename> in order to enhance backwards compatibility.
54 If a symlink target does not exist at the time that this generator runs, it
55 is assumed that the symlink target is the final target of the mount.</para>
56
b1c1a519
ZC
57 <para><filename>systemd-fstab-generator</filename> implements
58 <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
798d3a52
ZJS
59 </refsect1>
60
61 <refsect1>
62 <title>Kernel Command Line</title>
63
64 <para><filename>systemd-fstab-generator</filename> understands the
65 following kernel command line parameters:</para>
66
67 <variablelist class='kernel-commandline-options'>
68
69 <varlistentry>
70 <term><varname>fstab=</varname></term>
71 <term><varname>rd.fstab=</varname></term>
72
73 <listitem><para>Takes a boolean argument. Defaults to
74 <literal>yes</literal>. If <literal>no</literal>, causes the
91214a37 75 generator to ignore any mounts or swap devices configured in
798d3a52 76 <filename>/etc/fstab</filename>. <varname>rd.fstab=</varname>
91214a37 77 is honored only by the initial RAM disk (initrd) while
798d3a52
ZJS
78 <varname>fstab=</varname> is honored by both the main system
79 and the initrd.</para></listitem>
80 </varlistentry>
91214a37 81
798d3a52
ZJS
82 <varlistentry>
83 <term><varname>root=</varname></term>
84
85 <listitem><para>Takes the root filesystem to mount in the
86 initrd. <varname>root=</varname> is honored by the
87 initrd.</para></listitem>
88 </varlistentry>
91214a37 89
798d3a52
ZJS
90 <varlistentry>
91 <term><varname>rootfstype=</varname></term>
92
93 <listitem><para>Takes the root filesystem type that will be
94 passed to the mount command. <varname>rootfstype=</varname> is
95 honored by the initrd.</para></listitem>
96 </varlistentry>
91214a37 97
798d3a52
ZJS
98 <varlistentry>
99 <term><varname>rootflags=</varname></term>
100
101 <listitem><para>Takes the root filesystem mount options to
102 use. <varname>rootflags=</varname> is honored by the
103 initrd.</para></listitem>
104 </varlistentry>
91214a37 105
798d3a52
ZJS
106 <varlistentry>
107 <term><varname>mount.usr=</varname></term>
108
109 <listitem><para>Takes the <filename>/usr</filename> filesystem
110 to be mounted by the initrd. If
111 <varname>mount.usrfstype=</varname> or
112 <varname>mount.usrflags=</varname> is set, then
113 <varname>mount.usr=</varname> will default to the value set in
114 <varname>root=</varname>.</para>
115
b938cb90 116 <para>Otherwise, this parameter defaults to the
798d3a52
ZJS
117 <filename>/usr</filename> entry found in
118 <filename>/etc/fstab</filename> on the root filesystem.</para>
119
120 <para><varname>mount.usr=</varname> is honored by the initrd.
121 </para></listitem>
122 </varlistentry>
91214a37 123
798d3a52
ZJS
124 <varlistentry>
125 <term><varname>mount.usrfstype=</varname></term>
126
127 <listitem><para>Takes the <filename>/usr</filename> filesystem
128 type that will be passed to the mount command. If
129 <varname>mount.usr=</varname> or
130 <varname>mount.usrflags=</varname> is set, then
131 <varname>mount.usrfstype=</varname> will default to the value
132 set in <varname>rootfstype=</varname>.</para>
133
b938cb90 134 <para>Otherwise, this value will be read from the
798d3a52
ZJS
135 <filename>/usr</filename> entry in
136 <filename>/etc/fstab</filename> on the root filesystem.</para>
137
138 <para><varname>mount.usrfstype=</varname> is honored by the
139 initrd.</para></listitem>
140 </varlistentry>
91214a37 141
798d3a52
ZJS
142 <varlistentry>
143 <term><varname>mount.usrflags=</varname></term>
144
145 <listitem><para>Takes the <filename>/usr</filename> filesystem
146 mount options to use. If <varname>mount.usr=</varname> or
147 <varname>mount.usrfstype=</varname> is set, then
ff9b60f3 148 <varname>mount.usrflags=</varname> will default to the value
798d3a52
ZJS
149 set in <varname>rootflags=</varname>.</para>
150
b938cb90 151 <para>Otherwise, this value will be read from the
798d3a52
ZJS
152 <filename>/usr</filename> entry in
153 <filename>/etc/fstab</filename> on the root filesystem.</para>
154
155 <para><varname>mount.usrflags=</varname> is honored by the
156 initrd.</para></listitem>
157 </varlistentry>
91214a37
LP
158
159 <varlistentry>
160 <term><varname>systemd.volatile=</varname></term>
161
162 <listitem><para>Controls whether the system shall boot up in volatile mode. Takes a boolean argument or the
163 special value <option>state</option>.</para>
164
165 <para>If false (the default), this generator makes no changes to the mount tree and the system is booted up in
166 normal mode.</para>
167
168 <para>If true the generator ensures
169 <citerefentry><refentrytitle>systemd-volatile-root.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
170 is run as part of the initial RAM disk ("initrd"). This service changes the mount table before transitioning to
171 the host system, so that a volatile memory file system (<literal>tmpfs</literal>) is used as root directory,
172 with only <filename>/usr</filename> mounted into it from the configured root file system, in read-only
173 mode. This way the system operates in fully stateless mode, with all configuration and state reset at boot and
174 lost at shutdown, as <filename>/etc</filename> and <filename>/var</filename> will be served from the (initially
175 unpopulated) volatile memory file system.</para>
176
13070a70
LP
177 <para>If set to <option>state</option> the generator will leave the root directory mount point unaltered,
178 however will mount a <literal>tmpfs</literal> file system to <filename>/var</filename>. In this mode the normal
179 system configuration (i.e. the contents of <literal>/etc</literal>) is in effect (and may be modified during
180 system runtime), however the system state (i.e. the contents of <literal>/var</literal>) is reset at boot and
181 lost at shutdown.</para>
182
183 <para>If this setting is set to <literal>overlay</literal> the root file system is set up as
184 <literal>overlayfs</literal> mount combining the read-only root directory with a writable
185 <literal>tmpfs</literal>, so that no modifications are made to disk, but the file system may be modified
186 nonetheless with all changes being lost at reboot.</para>
91214a37
LP
187
188 <para>Note that in none of these modes the root directory, <filename>/etc</filename>, <filename>/var</filename>
189 or any other resources stored in the root file system are physically removed. It's thus safe to boot a system
190 that is normally operated in non-volatile mode temporarily into volatile mode, without losing data.</para>
191
13070a70
LP
192 <para>Note that with the exception of <literal>overlay</literal> mode, enabling this setting will only work
193 correctly on operating systems that can boot up with only <filename>/usr</filename> mounted, and are able to
194 automatically populate <filename>/etc</filename>, and also <filename>/var</filename> in case of
195 <literal>systemd.volatile=yes</literal>.</para></listitem>
91214a37 196 </varlistentry>
798d3a52
ZJS
197 </variablelist>
198 </refsect1>
199
200 <refsect1>
201 <title>See Also</title>
202 <para>
203 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
3ba3a79d 204 <citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
798d3a52
ZJS
205 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
206 <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
91214a37
LP
207 <citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
208 <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
798d3a52
ZJS
209 </para>
210 </refsect1>
059b37cc
LP
211
212</refentry>