From ba12e68e0561fe2e00ff2a8da73c809e5e4c6e2d Mon Sep 17 00:00:00 2001
From: Laurent Bercot
Date: Fri, 28 Nov 2025 20:04:18 +0000
Subject: Add fstab2s6rc (untested), prepare for 2.6.4.0
---
doc/fstab2s6rc.html | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++
doc/index.html | 7 ++-
doc/upgrade.html | 5 +-
3 files changed, 145 insertions(+), 3 deletions(-)
create mode 100644 doc/fstab2s6rc.html
(limited to 'doc')
diff --git a/doc/fstab2s6rc.html b/doc/fstab2s6rc.html
new file mode 100644
index 0000000..388258a
--- /dev/null
+++ b/doc/fstab2s6rc.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+ s6-linux-utils: the fstab2s6rc program
+
+
+
+
+
+
+
+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:
+
+
+
+ - Parallelization. Dependencies between the mount points are respected: if /var
+and /var/log are mount points in /etc/fstab, s6-rc will not attempt to
+mount /var/log before /var is successfully mounted. But apart from this
+necessary serialization, s6-rc will performs in parallel as much as it can.
+ - Granularity. mount -a in the boot sequence treats all the mounts as one
+unit; and although the output of fstab2s6rc can provide a bundle listing all the mounts,
+each mount is available as a separate service.
+
+
+
+ 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
+
+
+
+ - fstab2s6rc creates a directory dir in the filesystem to host all the service definition it will create.
+dir/em> must not previously exist.
+ - fstab2s6rc reads the /etc/fstab file. For every mount defined
+in the file, it creates a subdirectory of dir that is a suitable definition
+directory for an s6-rc service performing that mount.
+ - The service is named after the mount point: the service mounting /var/log
+will be called mount-var:log (slashes being replaced with colons, first slash
+omitted).
+ - For swap partitions, the partition named is used: the service activating swap on
+/dev/sda2 will be called swap-dev:sda2.
+
+
+ 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.
+Services marked noauto 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. 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
+
+
+
+
diff --git a/doc/index.html b/doc/index.html
index 52c02ce..67fcb58 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -50,6 +50,8 @@ The Linux kernel must be 3.5 or later.
2.14.5.0 or later. It's a build-time requirement. It's also a run-time
requirement if you link against the shared version of the skalibs
library.
+
execline version
+2.9.8.0 or later. It's a build-time requirement.
Licensing
@@ -63,8 +65,8 @@ library.
- The current released version of s6-linux-utils is
-2.6.3.1.
-You can access its checksum here.
+2.6.4.0.
+You can access its checksum here.
- Alternatively, you can checkout a copy of the
s6-linux-utils
git repository:
@@ -107,6 +109,7 @@ the previous versions of s6-linux-utils and the current one.
(Miscellaneous tools)