diff --git a/TODO b/TODO
index 76ddfb5a0a7..81715933d8f 100644
--- a/TODO
+++ b/TODO
@@ -1374,12 +1374,6 @@ Features:
CapabilityQuintet we already have. (This likely allows us to drop libcap
dep in the base OS image)
-* add concept for "exitrd" as inverse of "initrd", that we can transition to at
- shutdown, and has similar security semantics. This should then take the place
- of dracut's shutdown logic. Should probably support sysexts too. Care needs
- to be taken that the resulting logic ends up in RAM, i.e. is copied out of
- on-disk storage.
-
* userdbd: implement an additional varlink service socket that provides the
host user db in restricted form, then allow this to be bind mounted into
sandboxed environments that want the host database in minimal form. All
diff --git a/man/bootup.xml b/man/bootup.xml
index db98f4649af..a0aafe5e790 100644
--- a/man/bootup.xml
+++ b/man/bootup.xml
@@ -47,9 +47,9 @@
necessary file systems and spawning all configured services.
On shutdown, the system manager stops all services, unmounts all non-busy file systems (detaching
- the storage technologies backing them), and then (optionally) jumps into the exitrd, which is backed by
- tmpfs, and unmounts/detaches the remaining file systems, including the real root. As a last step,
- the system is powered down.
+ the storage technologies backing them), and then (optionally) jumps into the exitrd. The exitrd is backed
+ by tmpfs and unmounts/detaches the remaining file systems, including the real root. As a last step, the
+ system is powered down.
Additional information about the system boot process may be
found in
@@ -343,6 +343,17 @@ systemd-reboot.service | | | |
shutdown phase described above.
+
+ The exitrd
+
+ The "exitrd" is a concept symmetrical to the initrd. When the system manager is shutting down and
+ /run/initramfs/shutdown exists, it will switch root to
+ /run/initramfs/ and execute /shutdown. This program runs from
+ the tmpfs mounted on /run/, so it can unmount the old root file system and perform
+ additional steps, for example dismantle complex storage or perform additional logging about the shutdown.
+
+
+
See Also
diff --git a/man/os-release.xml b/man/os-release.xml
index 315ed8fcd66..99e31ba24eb 100644
--- a/man/os-release.xml
+++ b/man/os-release.xml
@@ -53,9 +53,9 @@
precedence over /usr/lib/os-release.
Applications should check for the former, and exclusively use its
data if it exists, and only fall back to
- /usr/lib/os-release if it is missing.
- Applications should not read data from both files at the same
- time. /usr/lib/os-release is the recommended
+ /usr/lib/os-release if that is missing.
+ Applications should not combine the data from both files.
+ /usr/lib/os-release is the recommended
place to store OS release information as part of vendor trees.
/etc/os-release should be a relative symlink
to /usr/lib/os-release, to provide
@@ -88,10 +88,10 @@
/etc/initrd-release
- In the initrd,
+ In the initrd
+ and exitrd,
/etc/initrd-release plays the same role as os-release in the
- main system. Additionally, the presence of that file means that the system is in the initrd phase.
+ main system. Additionally, the presence of that file means that the system is in the initrd/exitrd phase.
/etc/os-release should be symlinked to /etc/initrd-release
(or vice versa), so programs that only look for /etc/os-release (as described
above) work correctly.
@@ -594,10 +594,10 @@
Takes a space-separated list of one or more of the strings
system, initrd and portable. This field is
only supported in extension-release.d/ files and indicates what environments
- the system extension is applicable to: i.e. to regular systems, to initrds, or to portable service
- images. If unspecified, SYSEXT_SCOPE=system portable is implied, i.e. any system
- extension without this field is applicable to regular systems and to portable service environments,
- but not to initrd environments.
+ the system extension is applicable to: i.e. to regular systems, to initrds and exitrds, or to
+ portable service images. If not specified, SYSEXT_SCOPE=system portable is
+ implied, i.e. any system extension without this field is applicable to regular systems and to
+ portable service environments, but not to initrd/exitrd environments.