systemd-fstab-generator

systemd
Developer Lennart Poettering lennart@poettering.net
systemd-fstab-generator 8
systemd-fstab-generator Unit generator for /etc/fstab

`/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 by the initial RAM disk (initrd) while `fstab=` is honored by both the main system and the initrd.

`root=`

  Takes the root filesystem to mount in the initrd. `root=` is honored by the initrd.

`rootfstype=`

  Takes the root filesystem type that will be passed to the mount command. `rootfstype=` is honored by the initrd.

`rootflags=`

  Takes the root filesystem mount options to use. `rootflags=` is honored by the initrd.

`mount.usr=`

  Takes the `/usr` filesystem to be mounted by the initrd. If `mount.usrfstype=` or `mount.usrflags=` is set, then `mount.usr=` will default to the value set in `root=`.

  Otherwise, this parameter defaults to the `/usr` entry found in `/etc/fstab` on the root filesystem.

  `mount.usr=` is honored by the initrd.

`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.

`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.

`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 as part of the initial RAM disk ("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.

  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 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`.

## See Also

systemd 1, fstab 5, systemd.mount 5, systemd.swap 5, systemd-cryptsetup-generator 8, kernel-command-line 7