mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
3519d230c8
Currently we have no way how to specify dependencies between fstab entries (or another units) in the /etc/fstab. It means that users are forced to bypass fstab and write .mount units manually. The patch introduces new systemd fstab options: x-systemd.requires=<PATH> - to specify dependence an another mount (PATH is translated to unit name) x-systemd.requires=<UNIT> - to specify dependence on arbitrary UNIT x-systemd.requires-mounts-for=<PATH ...> - to specify dependence on another paths, implemented by RequiresMountsFor=. The option may be specified more than once. For example two bind mounts where B depends on A: /mnt/test/A /mnt/test/A none bind,defaults /mnt/test/A /mnt/test/B none bind,x-systemd.requires=/mnt/test/A More complex example with overlay FS where one mount point depends on "low" and "upper" directories: /dev/sdc1 /mnt/low ext4 defaults /dev/sdc2 /mnt/high ext4 defaults overlay /mnt/merged overlay lowerdir=/mnt/low,upperdir=/mnt/high/data,workdir=/mnt/high/work,x-systemd.requires-mounts-for=/mnt/low,x-systemd.requires-mounts-for=mnt/high https://bugzilla.redhat.com/show_bug.cgi?id=812826 https://bugzilla.redhat.com/show_bug.cgi?id=1164334
370 lines
17 KiB
XML
370 lines
17 KiB
XML
<?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">
|
|
|
|
<!--
|
|
This file is part of systemd.
|
|
|
|
Copyright 2010 Lennart Poettering
|
|
|
|
systemd is free software; you can redistribute it and/or modify it
|
|
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
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<refentry id="systemd.mount">
|
|
<refentryinfo>
|
|
<title>systemd.mount</title>
|
|
<productname>systemd</productname>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<contrib>Developer</contrib>
|
|
<firstname>Lennart</firstname>
|
|
<surname>Poettering</surname>
|
|
<email>lennart@poettering.net</email>
|
|
</author>
|
|
</authorgroup>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>systemd.mount</refentrytitle>
|
|
<manvolnum>5</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>systemd.mount</refname>
|
|
<refpurpose>Mount unit configuration</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<para><filename><replaceable>mount</replaceable>.mount</filename></para>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>A unit configuration file whose name ends in
|
|
<literal>.mount</literal> encodes information about a file system
|
|
mount point controlled and supervised by systemd.</para>
|
|
|
|
<para>This man page lists the configuration options specific to
|
|
this unit type. See
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for the common options of all unit configuration files. The common
|
|
configuration items are configured in the generic [Unit] and
|
|
[Install] sections. The mount specific configuration options are
|
|
configured in the [Mount] section.</para>
|
|
|
|
<para>Additional options are listed in
|
|
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
which define the execution environment the
|
|
<citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
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 project='man-pages'><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 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
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
|
|
|
<para>Optionally, a mount unit may be accompanied by an automount
|
|
unit, to allow on-demand or parallelized mounting. See
|
|
<citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
|
|
|
<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 (independently of unit files
|
|
or <filename>/etc/fstab</filename>) will be monitored by systemd
|
|
and appear like any other mount 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-userspace 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>
|
|
<title><filename>fstab</filename></title>
|
|
|
|
<para>Mount units may either be configured via unit files, or via
|
|
<filename>/etc/fstab</filename> (see
|
|
<citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
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. 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.</para>
|
|
|
|
<variablelist class='fstab-options'>
|
|
|
|
<varlistentry>
|
|
<term><option>x-systemd.requires=</option></term>
|
|
|
|
<listitem><para>Configures a <varname>Requires=</varname> and
|
|
an <varname>After=</varname> dependency between the created
|
|
mount unit and another systemd unit, such as a device or mount
|
|
unit. The argument should be a unit name, or an absolute path
|
|
to a device node or mount point. This option may be specified
|
|
more than once. This option is particularly useful for mount
|
|
point declarations that need an additional device to be around
|
|
(such as an external journal device for journal file systems)
|
|
or an additional mount to be in place (such as an overlay file
|
|
system that merges multiple mount points). See
|
|
<varname>After=</varname> and <varname>Requires=</varname> in
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for details.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>x-systemd.requires-mounts-for=</option></term>
|
|
|
|
<listitem><para>Configures a
|
|
<varname>RequiresMountsFor=</varname> dependency between the
|
|
created mount unit and other mount units. The argument must be
|
|
an absolute path. This option may be specified more than once.
|
|
See <varname>RequiresMountsFor=</varname> in
|
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for details.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<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.idle-timeout=</option></term>
|
|
|
|
<listitem><para>Configures the idleness timeout of the
|
|
automount unit. See <varname>TimeoutIdleSec=</varname> in
|
|
<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>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> or
|
|
<filename>remote-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>nofail</option></term>
|
|
|
|
<listitem><para>With <option>nofail</option> this mount will
|
|
be only wanted, not required, by
|
|
<filename>local-fs.target</filename> or
|
|
<filename>remote-fs.target</filename>. This means that the
|
|
boot will continue even if this mount point is not mounted
|
|
successfully.</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 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>
|
|
<title>Options</title>
|
|
|
|
<para>Mount files must include a [Mount] section, which carries
|
|
information about the file system mount points it 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>
|
|
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 class='unit-directives'>
|
|
|
|
<varlistentry>
|
|
<term><varname>What=</varname></term>
|
|
<listitem><para>Takes an absolute path of a device node, file
|
|
or other resource to mount. See
|
|
<citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
for details. If this refers to a device node, a dependency on
|
|
the respective device unit is automatically created. (See
|
|
<citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
for more information.) This option is
|
|
mandatory.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>Where=</varname></term>
|
|
<listitem><para>Takes an absolute path of a directory of the
|
|
mount point. If the mount point does not exist at the time of
|
|
mounting, it is created. This string must be reflected in the
|
|
unit filename. (See above.) This option is
|
|
mandatory.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>Type=</varname></term>
|
|
<listitem><para>Takes a string for the file system type. See
|
|
<citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
for details. This setting is optional.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>Options=</varname></term>
|
|
|
|
<listitem><para>Mount options to use 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 project='man-pages'><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 points (and any parent
|
|
directories) are automatically created if needed. This option
|
|
specifies the file system access mode used when creating these
|
|
directories. Takes an access mode in octal notation. Defaults
|
|
to 0755.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><varname>TimeoutSec=</varname></term>
|
|
<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 will be considered failed and be
|
|
shut down again. All commands still running will be terminated
|
|
forcibly via <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. 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>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</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 project='man-pages'><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry project='man-pages'><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>
|
|
|
|
</refentry>
|