summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-05-04 19:57:36 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-05-04 19:57:36 +0000
commit91ea846a6f05e9a57b2b3bc3b56a94e0026c5618 (patch)
tree8afffaeb59e88a80a054a2f5518ca9f9c8bc7f4f /doc
parent22d026b0616dff48b5bed70ced91b7578c8222c7 (diff)
downloads6-linux-init-91ea846a6f05e9a57b2b3bc3b56a94e0026c5618.tar.xz
Add -n and -N options to s6-l-i and s6-l-i-m
Diffstat (limited to 'doc')
-rw-r--r--doc/s6-linux-init-maker.html33
-rw-r--r--doc/s6-linux-init.html19
2 files changed, 43 insertions, 9 deletions
diff --git a/doc/s6-linux-init-maker.html b/doc/s6-linux-init-maker.html
index 6c52d32..02fd15d 100644
--- a/doc/s6-linux-init-maker.html
+++ b/doc/s6-linux-init-maker.html
@@ -59,6 +59,7 @@ machine</em>. If it is not the case, the system will fail to boot.
[ -e <em>initial_envvar</em> ] ... \
[ -q <em>finalsleeptime</em> ] \
[ -D <em>initdefault</em> ] \
+ [ -n | -N ]
[ -U <em>utmp_user</em> ] \
<em>dir</em>
</pre>
@@ -169,7 +170,7 @@ is defined. </li> <p />
<li> <tt>-1</tt>&nbsp;: make it so that all the messages that are
sent to the catch-all logger (i.e. all the error messages that are not
caught by a dedicated logger, as well as the output from <em>rc.init</em>,
-<em>runlevel</em> and <em>rc.shutdown</em>,
+<em>runlevel</em> and <em>rc.shutdown</em>)
are also copied to <tt>/dev/console</tt>. (Timestamps are not
copied to <tt>/dev/console</tt>.) This is generally useful to
debug a system at a glance, but if a failing program keeps sending
@@ -264,6 +265,36 @@ sysvinit behaviour) or <tt>default</tt> (OpenRC behaviour). Default is
command line, it will be interpreted as the runlevel to boot the system
on, and will override the default given here. </li> <p />
+ <li> <tt>-n</tt>&nbsp;: at boot time, assume that a tmpfs is already
+present on <tt>/run</tt> (or the argument that was given to the
+<tt>--tmpfsdir</tt> configure option at build time) and that its
+contents are essential. Instead of unmounting <tt>/run</tt> then
+mounting a tmpfs on it, <a href="s6-linux-init.html">s6-linux-init</a>
+will simply remount <tt>/run</tt>. This option is useful when
+s6-linux-init is used on a distribution that imposes its initramfs
+and said initramfs writes data to <tt>/run</tt> that is then used
+by the distribution's initialization scripts. (An initramfs should
+normally be transparent and leave no trace in the filesystem;
+unfortunately, a lot of distributions do not care.) By default,
+<tt>/run</tt> will be unmounted at boot time (just in case), and
+then a tmpfs will be mounted on it. <strong>Do not</strong> use
+this option if you are not sure: failure to remount <tt>/run</tt>
+will cause init to die and the kernel to panic. This option is
+incompatible with the <tt>-N</tt> option. </li> <p />
+
+ <li> <tt>-N</tt>&nbsp;: at boot time, do not perform
+mounting/unmounting/remounting on <tt>/run</tt> (or the <em>tmpfsdir</em>
+declared at build time) <strong>at all</strong>. By default,
+a tmpfs is mounted on <tt>/run</tt> at boot time. This option is
+useful when s6-linux-init is used to boot on an initramfs that
+will remain the de facto rootfs of the system (which is the case
+for instance in certain live CDs or certain embedded devices), in
+which case the rootfs is already read-write and in RAM and mounting
+an additional tmpfs is unnecessary. <strong>Do not</strong> use this
+option if your rootfs is read-only: failure to write to <tt>/run</tt>
+will cause init to die and the kernel to panic. This option is
+incompatible with the <tt>-n</tt> option. </li> <p />
+
<li> <tt>-U</tt>&nbsp;<em>utmp_user</em>&nbsp;: this option is only
available when the s6-linux-init package has been built with the
<tt>--enable-utmps</tt> configure option, that enables support for the
diff --git a/doc/s6-linux-init.html b/doc/s6-linux-init.html
index 31014d6..f57adae 100644
--- a/doc/s6-linux-init.html
+++ b/doc/s6-linux-init.html
@@ -27,7 +27,7 @@ and execs into <a href="//skarnet.org/software/s6/s6-svscan.html">s6-svscan</a>.
<h2> Interface </h2>
<pre>
- s6-linux-init [ -c <em>basedir</em> ] [ -p <em>initial_path</em> ] [ -s <em>env_store</em> ] [ -m <em>umask</em> ] [ -d <em>dev_style</em> ] [ -D <em>initdefault</em> ] [ <em>args...</em> ]
+ s6-linux-init [ -c <em>basedir</em> ] [ -p <em>initial_path</em> ] [ -s <em>env_store</em> ] [ -m <em>umask</em> ] [ -d <em>dev_style</em> ] [ -D <em>initdefault</em> ] [ -n | -N ] [ <em>args...</em> ]
</pre>
<ul>
@@ -57,14 +57,16 @@ the PATH environment variable. </li>
<li> <tt>-s</tt>&nbsp;<em>env_store</em>&nbsp;: the place where to dump
kernel environment variables. </li>
<li> <tt>-m</tt>&nbsp;<em>initial_umask</em>&nbsp;: the initial file umask. </li>
- <li> <tt>-d</tt>&nbsp;<em>dev_style</em>&nbsp;: how <tt>/dev</tt> is
-handled on this system. 0 means a static <tt>/dev</tt>, 1 means
-devtmpfs but not automounted by the kernel at boot time, and 2 means
-devtmpfs automounted by the kernel at boot time. </li>
+ <li> <tt>-d</tt>&nbsp;<em>slashdev</em>&nbsp;: mount a devtmpfs on
+<em>slashdev</em>. By default, no such mount is performed - it is assumed
+that a devtmpfs is automounted on <tt>/dev</tt> at boot time by the kernel. </li>
<li> <tt>-D</tt>&nbsp;<em>initdefault</em>&nbsp;: the initial runlevel
to boot to, if it isn't overridden by the kernel command line.
This is only given as a first argument to <em>rc.init</em>.
Default is <tt>default</tt>. </li>
+ <li> <tt>-n</tt>&nbsp;: instead of unmounting <tt>/run</tt> and mounting
+a tmpfs on it, just remount <tt>/run</tt>. </li>
+ <li> <tt>-N</tt>&nbsp;: do not touch <tt>/run</tt> at all. </li>
</ul>
<h2> Early preparation </h2>
@@ -79,12 +81,13 @@ operations:
<li> It chdirs to <tt>/</tt>. </li>
<li> It sets the umask to <em>initial_umask</em>. </li>
<li> It becomes a session leader. </li>
- <li> It mounts a devtmpfs on <tt>/dev</tt>, if necessary. </li>
+ <li> It mounts a devtmpfs on <em>slashdev</em>, if requested. </li>
<li> It uses <tt>/dev/null</tt> as its stdin (instead of <tt>/dev/console</tt>).
<tt>/dev/console</tt> is still used, for now, as stdout and stderr. </li>
<li> It unmounts <tt>/run</tt> (or the directory you have given to the
-<tt>--tmpfsdir</tt> configure option at package build time), just in case. </li>
- <li> It creates a tmpfs on <tt>/run</tt> (or your chosen <em>tmpfsdir</em>). </li>
+<tt>--tmpfsdir</tt> configure option at package build time), just in case;
+then it creates a tmpfs on it. Alternatively, it remounts <tt>/run</tt>,
+or does not touch it at all. </li>
<li> It copies the whole <tt><em>basedir</em>/run-image</tt> hierarchy to
<tt>/run</tt> (or your chosen tmpfsdir). </li>
<li> It reads the initial environment from <tt><em>basedir</em>/env</tt>. </li>