# systemd-fstab-generator

## NAME



           systemd-fstab-generator - Unit generator for /etc/fstab
    


## SYNOPSIS



           /usr/lib/systemd/system-generators/systemd-fstab-generator
    


## DESCRIPTION



           systemd-fstab-generator is a generator that translates /etc/fstab
           (see fstab(5) for details) into native systemd units early at boot
           and when configuration of the system manager is reloaded. This
           will instantiate mount and swap units as necessary.
    
           The _passno_ field is treated like a simple boolean, and the
           ordering information is discarded. However, if the root file
           system is checked, it is checked before all the other file
           systems.
    
           See systemd.mount(5) and systemd.swap(5) for more information
           about special /etc/fstab mount options this generator understands.
    
           One special topic is handling of symbolic links. Historical init
           implementations supported symlinks in /etc/fstab. Because mount
           units will refuse mounts where the target is a symbolic link, this
           generator will resolve any symlinks as far as possible when
           processing /etc/fstab in order to enhance backwards compatibility.
           If a symlink target does not exist at the time that this generator
           runs, it is assumed that the symlink target is the final target of
           the mount.
    
           systemd-fstab-generator implements systemd.generator(7).
    


## KERNEL COMMAND LINE



           systemd-fstab-generator understands the following kernel command
           line parameters:
    
           _fstab=_ , _rd.fstab=_
               Takes a boolean argument. Defaults to "yes". If "no", causes
               the generator to ignore any mounts or swap devices configured
               in /etc/fstab.  _rd.fstab=_ is honored only in the initrd, while
               _fstab=_ is honored by both the main system and the initrd.
    
               Added in version 186.
    
           _root=_
               Configures the operating system's root filesystem to mount
               when running in the initrd. This accepts a device node path
               (usually /dev/disk/by-uuid/...  or /dev/disk/by-label/...  or
               similar), or the special values "gpt-auto", "gpt-auto-force",
               "dissect", "dissect-force", "fstab", "fstab", and "off".
    
               Set to "gpt-auto", "gpt-auto-force", "dissect",
               "dissect-force" to explicitly request automatic root file
               system discovery, implemented in
               systemd-gpt-auto-generator(8).
    
               Use "fstab" to explicitly request automatic root file system
               discovery via the initrd /etc/fstab rather than via kernel
               command line.
    
               Use "tmpfs" in order to mount a tmpfs(5) file system as root
               file system of the OS. This is useful in combination with
               _mount.usr=_ (see below) in order to combine a volatile root
               file system with a separate, immutable /usr/ file system. Also
               see _systemd.volatile=_ below.
    
               Use "bind:..."  to bind mount another directory as operating
               system root filesystems (added in v258). Expects an absolute
               path name referencing an existing directory within the
               initrd's file hierarchy to boot into.
    
               Set to "off" to turn off mounting of a root file system.
    
               Note that further _root=_ values may be supported, implemented
               in additional packages.
    
               Added in version 217.
    
           _rootfstype=_
               Takes the root filesystem type that will be passed to the
               mount command.  _rootfstype=_ is honored by the initrd.
    
               Added in version 217.
    
           _rootflags=_
               Takes the root filesystem mount options to use.  _rootflags=_ is
               honored by the initrd.
    
               Note that unlike most kernel command line options this setting
               does not override settings made in configuration files
               (specifically: the mount option string in /etc/fstab). See
               systemd-remount-fs.service(8).
    
               Added in version 217.
    
           _mount.usr=_
               Takes the /usr/ filesystem to be mounted by the initrd. If
               _mount.usrfstype=_ or _mount.usrflags=_ is set, then the mount
               configured via _mount.usr=_ will default to the the same value
               set in _root=_.
    
               Set to "dissect" to explicitly request automatic /usr/ file
               system discovery, implemented in
               systemd-gpt-auto-generator(8).
    
               Set to "off" to turn off mounting of a separate /usr/ file
               system.
    
               _mount.usr=_ is honored by the initrd.
    
               Added in version 217.
    
           _mount.usrfstype=_
               Takes the /usr/ filesystem type that will be passed to the
               mount command. If _mount.usr=_ or _mount.usrflags=_ is set, then
               _mount.usrfstype=_ will default to the value set in _rootfstype=_.
    
               Otherwise, this value will be read from the /usr/ entry in
               /etc/fstab on the root filesystem.
    
               _mount.usrfstype=_ is honored by the initrd.
    
               Added in version 217.
    
           _mount.usrflags=_
               Takes the /usr/ filesystem mount options to use. If _mount.usr=_
               or _mount.usrfstype=_ is set, then _mount.usrflags=_ will default
               to the value set in _rootflags=_.
    
               Otherwise, this value will be read from the /usr/ entry in
               /etc/fstab on the root filesystem.
    
               _mount.usrflags=_ is honored by the initrd.
    
               Added in version 217.
    
           _roothash=_ , _usrhash=_
               These options are primarily read by
               systemd-veritysetup-generator(8). When set this indicates that
               the root file system (or /usr/) shall be mounted from Verity
               volumes with the specified hashes. If these kernel command
               line options are set the root (or /usr/) file system is thus
               mounted from a device mapper volume /dev/mapper/root (or
               /dev/mapper/usr).
    
               Added in version 251.
    
           _systemd.volatile=_
               Controls whether the system shall boot up in volatile mode.
               Takes a boolean argument or the special value **state**.
    
               If false (the default), this generator makes no changes to the
               mount tree and the system is booted up in normal mode.
    
               If true the generator ensures systemd-volatile-root.service(8)
               is run in the initrd. This service changes the mount table
               before transitioning to the host system, so that a volatile
               memory file system ("tmpfs") is used as root directory, with
               only /usr/ mounted into it from the configured root file
               system, in read-only mode. This way the system operates in
               fully stateless mode, with all configuration and state reset
               at boot and lost at shutdown, as /etc/ and /var/ will be
               served from the (initially unpopulated) volatile memory file
               system.
    
               If set to **state** the generator will leave the root directory
               mount point unaltered, however will mount a "tmpfs" file
               system to /var/. In this mode the normal system configuration
               (i.e. the contents of "/etc/") is in effect (and may be
               modified during system runtime), however the system state
               (i.e. the contents of "/var/") is reset at boot and lost at
               shutdown.
    
               If this setting is set to "overlay" the root file system is
               set up as "overlayfs" mount combining the read-only root
               directory with a writable "tmpfs", so that no modifications
               are made to disk, but the file system may be modified
               nonetheless with all changes being lost at reboot.
    
               Note that in none of these modes the root directory, /etc/,
               /var/ or any other resources stored in the root file system
               are physically removed. It's thus safe to boot a system that
               is normally operated in non-volatile mode temporarily into
               volatile mode, without losing data.
    
               Note that with the exception of "overlay" mode, enabling this
               setting will only work correctly on operating systems that can
               boot up with only /usr/ mounted, and are able to automatically
               populate /etc/, and also /var/ in case of
               "systemd.volatile=yes".
    
               Also see _root=tmpfs_ above, for a method to combine a "tmpfs"
               file system with a regular /usr/ file system (as configured
               via _mount.usr=_). The main distinction between
               _systemd.volatile=yes_ , and _root=tmpfs_ in combination _mount.usr=_
               is that the former operates on top of a regular root file
               system and temporarily obstructs the files and directories
               above its /usr/ subdirectory, while the latter does not hide
               any files, but simply mounts a unpopulated tmpfs as root file
               system and combines it with a user picked /usr/ file system.
    
               Added in version 233.
    
           _systemd.swap=_
               Takes a boolean argument or enables the option if specified
               without an argument. If disabled, causes the generator to
               ignore any swap devices configured in /etc/fstab. Defaults to
               enabled.
    
               Added in version 246.
    
           _systemd.mount-extra=WHAT:WHERE[:FSTYPE[:OPTIONS]]_ ,
           _rd.systemd.mount-extra=WHAT:WHERE[:FSTYPE[:OPTIONS]]_
               Specifies the mount unit. Takes at least two and at most four
               fields separated with a colon (":"). Each field is handled as
               the corresponding fstab field. This option can be specified
               multiple times.  _rd.systemd.mount-extra=_ is honored only in
               the initrd, while _systemd.mount-extra=_ is honored by both the
               main system and the initrd. In the initrd, the mount point
               (and also source path if the mount is bind mount) specified in
               _systemd.mount-extra=_ is prefixed with /sysroot/.
    
               Example:
    
                   systemd.mount-extra=/dev/sda1:/mount-point:ext4:rw,noatime
    
               Added in version 254.
    
           _systemd.swap-extra=WHAT[:OPTIONS]_ ,
           _rd.systemd.swap-extra=WHAT[:OPTIONS]_
               Specifies the swap unit. Takes the block device to be used as
               a swap device, and optionally takes mount options followed by
               a colon (":"). This option can be specified multiple times.
               _rd.systemd.swap-extra=_ is honored only in the initrd, while
               _systemd.swap-extra=_ is honored by both the main system and the
               initrd.
    
               Example:
    
                   systemd.swap-extra=/dev/sda2:x-systemd.makefs
    
               Added in version 254.
    


## SYSTEM CREDENTIALS



           _fstab.extra_
               This credential may contain addition mounts to establish, in
               the same format as fstab(5), with one mount per line. It is
               read in addition to /etc/fstab.
    
               Added in version 254.
    


## NOTES



            1. Known Environment Variables
               https://systemd.io/ENVIRONMENT/
    


* * *