Copyright 2010 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Lesser General Public License for more details.
- You should have received a copy of the GNU General Public License
+ You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refnamediv>
<refname>systemd.mount</refname>
- <refpurpose>systemd mount configuration files</refpurpose>
+ <refpurpose>Mount unit configuration</refpurpose>
</refnamediv>
<refsynopsisdiv>
- <para><filename>systemd.mount</filename></para>
+ <para><filename><replaceable>mount</replaceable>.mount</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>A unit configuration file whose name ends in
- <filename>.mount</filename> encodes information about
+ <literal>.mount</literal> encodes information about
a file system mount point controlled and supervised by
systemd.</para>
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
which define the execution environment the
<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- binary is executed in.</para>
+ binary is executed in, and in
+ <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ which define the way the processes are terminated, and
+ in
+ <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ which configure resource control settings for the
+ processes of the service. Note that the User= and
+ Group= options are not particularly useful for mount
+ units specifying a <literal>Type=</literal> option or
+ using configuration not specified in
+ <filename>/etc/fstab</filename>;
+ <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ will refuse options that are not listed in
+ <filename>/etc/fstab</filename> if it is not run as
+ UID 0.</para>
<para>Mount units must be named after the mount point
directories they control. Example: the mount point
- <filename>/home/lennart</filename> must be configured
+ <filename noindex='true'>/home/lennart</filename> must be configured
in a unit file
<filename>home-lennart.mount</filename>. For details
about the escaping logic used to convert a file system
- path to a unit name see
+ path to a unit name, see
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>Optionally, a mount unit may be accompanied by
mounting. See
<citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
- <para>If an mount point is beneath another mount point
+ <para>If a mount point is beneath another mount point
in the file system hierarchy, a dependency between both
units is created automatically.</para>
- <para>Mount points created at runtime independent on
- unit files or <filename>/etc/fstab</filename> will be
+ <para>Mount points created at runtime (independently of
+ unit files or <filename>/etc/fstab</filename>) will be
monitored by systemd and appear like any other mount
- unit in systemd.</para>
+ unit in systemd.
+ See <filename>/proc/self/mountinfo</filename> description
+ in <citerefentry project='man-pages'><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ </para>
+
+ <para>Some file systems have special semantics as API
+ file systems for kernel-to-userspace and
+ userspace-to-userpace interfaces. Some of them may not
+ be changed via mount units, and cannot be disabled.
+ For a longer discussion see <ulink
+ url="http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems">API
+ File Systems</ulink>.</para>
</refsect1>
<refsect1>
<para>Mount units may either be configured via unit
files, or via <filename>/etc/fstab</filename> (see
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for details).</para>
+ for details). Mounts listed in
+ <filename>/etc/fstab</filename> will be converted into
+ native units dynamically at boot and when the
+ configuration of the system manager is reloaded. In
+ general, configuring mount points through
+ <filename>/etc/fstab</filename> is the preferred
+ approach. See
+ <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ for details about the conversion.</para>
<para>When reading <filename>/etc/fstab</filename> a
few special mount options are understood by systemd
which influence how dependencies are created for mount
- points from <filename>/etc/fstab</filename>. If
- <option>MountAuto=yes</option> is set in
- <filename>system.conf</filename> (which is the
- default), or if <option>x-systemd.mount</option> is
- specified as mount option, then systemd will create a
- dependency of type <option>Wants</option> from either
- <filename>local-fs.target</filename> or
+ points from <filename>/etc/fstab</filename>. systemd
+ will create a dependency of type
+ <option>Wants</option> or <option>Requires</option>
+ (see option <option>nofail</option> below), from
+ either <filename>local-fs.target</filename> or
<filename>remote-fs.target</filename>, depending
- whether the file system is local or remote. If
- <option>x-systemd.automount</option> is set, an
- automount unit will be created for the file
- system. See
- <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for details. If
- <option>x-systemd-device-timeout=</option> is
- specified it may be used to configure how long systemd
- should wait for a device to show up before giving up
- on an entry from
- <filename>/etc/fstab</filename>. Specify a time in
- seconds or explicitly specifiy a unit as
- <literal>s</literal>, <literal>min</literal>,
- <literal>h</literal>, <literal>ms</literal>.</para>
+ whether the file system is local or remote.</para>
+
+ <variablelist class='fstab-options'>
+
+ <varlistentry>
+ <term><option>x-systemd.automount</option></term>
+
+ <listitem><para>An automount unit will be created
+ for the file system. See
+ <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for details.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>x-systemd.device-timeout=</option></term>
+
+ <listitem><para>Configure how long systemd should
+ wait for a device to show up before giving up on
+ an entry from
+ <filename>/etc/fstab</filename>. Specify a time in
+ seconds or explicitly append a unit as
+ <literal>s</literal>, <literal>min</literal>,
+ <literal>h</literal>,
+ <literal>ms</literal>.</para>
+
+ <para>Note that this option can only be used in
+ <filename>/etc/fstab</filename>, and will be
+ ignored when part of <varname>Options=</varname>
+ setting in a unit file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>nofail</option></term>
+ <term><option>fail</option></term>
+
+ <listitem><para>With <option>nofail</option> this
+ mount will be only wanted, not required, by the
+ <filename>local-fs.target</filename>. This means
+ that the boot will continue even if this mount
+ point is not mounted successfully. Option
+ <option>fail</option> has the opposite meaning and
+ is the default.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>noauto</option></term>
+ <term><option>auto</option></term>
+
+ <listitem><para>With <option>noauto</option>, this
+ mount will not be added as a dependency for
+ <filename>local-fs.target</filename>. This means
+ that it will not be mounted automatically during
+ boot, unless it is pulled in by some other
+ unit. Option <option>auto</option> has the
+ opposite meaning and is the default.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>x-initrd.mount</option></term>
+
+ <listitem><para>An additional filesystem to be
+ mounted in the initramfs. See
+ <filename>initrd-fs.target</filename> description
+ in
+ <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
<para>If a mount point is configured in both
- <filename>/etc/fstab</filename> and a unit file, the
- configuration in the latter takes precedence.</para>
+ <filename>/etc/fstab</filename> and a unit file that
+ is stored below <filename>/usr</filename>, the former
+ will take precedence. If the unit file is stored below
+ <filename>/etc</filename>, it will take
+ precedence. This means: native unit files take
+ precedence over traditional configuration files, but
+ this is superseded by the rule that configuration in
+ <filename>/etc</filename> will always take precedence
+ over configuration in
+ <filename>/usr</filename>.</para>
</refsect1>
<refsect1>
supervises. A number of options that may be used in
this section are shared with other unit types. These
options are documented in
- <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
+ <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ and
+ <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
options specific to the [Mount] section of mount
units are the following:</para>
- <variablelist>
+ <variablelist class='unit-directives'>
<varlistentry>
<term><varname>What=</varname></term>
<term><varname>Where=</varname></term>
<listitem><para>Takes an absolute path
of a directory of the mount point. If
- the mount point is not existing at
+ the mount point does not exist at the
time of mounting, it is created. This
string must be reflected in the unit
- file name. (See above.) This option is
+ filename. (See above.) This option is
mandatory.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Type=</varname></term>
<listitem><para>Takes a string for the
- filesystem type. See
+ file system type. See
<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for details. This setting is
optional.</para></listitem>
<term><varname>Options=</varname></term>
<listitem><para>Mount options to use
- when mounting. This takes a comma
- separated list of options. This
+ when mounting. This takes a
+ comma-separated list of options. This
setting is optional.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>SloppyOptions=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If true, parsing of the
+ options specified in
+ <varname>Options=</varname> is
+ relaxed, and unknown mount options are
+ tolerated. This corresponds with
+ <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s
+ <parameter>-s</parameter>
+ switch. Defaults to
+ off.</para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>DirectoryMode=</varname></term>
<listitem><para>Directories of mount
<listitem><para>Configures the time to
wait for the mount command to
finish. If a command does not exit
- within the configured time the mount
+ within the configured time, the mount
will be considered failed and be shut
down again. All commands still running
will be terminated forcibly via
- SIGTERM, and after another delay of
- this time with SIGKILL. (See
- <option>KillMode=</option> below.)
+ <constant>SIGTERM</constant>, and after another delay of
+ this time with <constant>SIGKILL</constant>. (See
+ <option>KillMode=</option> in
+ <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>.)
Takes a unit-less value in seconds, or
a time span value such as "5min
20s". Pass 0 to disable the timeout
- logic. Defaults to
- 90s.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>KillMode=</varname></term>
- <listitem><para>Specifies how
- processes of this mount shall be
- killed. One of
- <option>control-group</option>,
- <option>process</option>,
- <option>none</option>.</para>
-
- <para>This option is mostly equivalent
- to the <option>KillMode=</option>
- option of service files. See
- <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for details.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>KillSignal=</varname></term>
- <listitem><para>Specifies which signal
- to use when killing a process of this
- mount. Defaults to SIGTERM.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>SendSIGKILL=</varname></term>
- <listitem><para>Specifies whether to
- send SIGKILL to remaining processes
- after a timeout, if the normal
- shutdown procedure left processes of
- the mount around. Takes a boolean
- value. Defaults to "yes".
- </para></listitem>
+ logic. The default value is set from the manager configuration
+ file's <varname>DefaultTimeoutStart=</varname> variable.</para></listitem>
</varlistentry>
</variablelist>
+
+ <para>Check
+ <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ and
+ <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for more settings.</para>
</refsect1>
<refsect1>
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <citerefentry project='man-pages'><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>