s6-linux-utils
Software
skarnet.org

The fstab2s6rc program

fstab2s6rc reads the /etc/fstab file, listing the filesystems and swap partitions to mount at boot time, and builds a set of service definition directories from it, meant to be fed to s6-rc-compile, having the effect of mounting these partitions when run by s6-rc.

This method has several advantages over the classic mount -a:

fstab2s6rc is an offline tool. It does not perform mounts or unmounts itself; it just converts the data in /etc/fstab, which is in a format usable by mount, into a format usable — after compilation — by s6-rc.

Interface

     fstab2s6rc [ -A | -a ] [ -U | -u ] [ -E | -e ] [ -F fstab ] [ -m mode ] [ -B bundle ] [ -d basedep ] dir

Options

-F fstab, --fstab=fstab
Read mount point information from file fstab instead of /etc/fstab.
-m mode, --mode=mode
Create dir with permissions mode. mode is interpreted in octal.
-B bundle, --bundle=bundle
Create a bundle named bundle containing all the created services. The mount point services will also be grouped under a bundle named bundle-mounts and the swap services will be grouped under a bundle named bundle-swaps. fstab lines that have the noauto option will not be included in these bundles.
-d dep, --base-dependency=dep
Add a dependency to a service named dep to all the created services. This is useful e.g. in a boot sequence to ensure that the mounts will not start before a certain point.
-A, --include-noauto
Include mount points and swaps marked noauto in the output. These services will not be marked as essential or recommended, and they will not be included in any bundle, but they will be there. This is the default.
-a, --exclude-noauto
Exclude mount points and swaps marked noauto. No service will be created for these fstab entries.
-U, --without-uuid
The created services will use s6-linux-utils commands such as s6-mount and s6-swapon. This makes the created services only depend on s6-linux-utils, but the fstab entries must not contain util-linux-specific syntax such as UUID= or LABEL= in place of device names (if they do, the fstab2s6rc invocation will work, but will generate nonsensical commands, interpreting the device names literally). This is the default.
-u, --with-uuid
The created services will use util-linux commands such as mount and swapon. Running the services will depend on having such commands installed, but syntax for labels and uuids will be understood.
-E, --essential
Mark the services as essential, and do not create down scripts for them. This makes services suitable to be part of a base init sequence where all the listed filesystems are mounted early, and never unmounted until right before the machine reboots. (noauto entries will not be marked as essential.) This is the default.
-e, --not-essential
Mark the services as recommended rather than essential; create down scripts to unmount the filesystem. This makes services suitable for being called later than the base init sequence, as an optional part of a system's functionality. Stopping the services will unmount the corresponding filesystems and turn off the corresponding swap devices. noauto entries will not be marked as recommended.

Exit codes

0
Success.
1
Invalid fstab file.
100
Incorrect usage.
111
System call failed.