summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README7
-rw-r--r--src/core/manager.c6
2 files changed, 12 insertions, 1 deletions
diff --git a/README b/README
index 4c9d9ae1bd..6eaba9b0f1 100644
--- a/README
+++ b/README
@@ -353,6 +353,13 @@ WARNINGS and TAINT FLAGS:
For more information on this issue consult
https://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
+ systemd will warn if the filesystem is not usr-merged (i.e.: /bin, /sbin
+ and /lib* are not symlinks to their counterparts under /usr). Taint flag
+ 'unmerged-usr' will be set when this condition is detected.
+
+ For more information on this issue consult
+ https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge
+
systemd requires that the /run mount point exists. systemd also
requires that /var/run is a symlink to /run. Taint flag 'var-run-bad'
will be set when this condition is detected.
diff --git a/src/core/manager.c b/src/core/manager.c
index 4b86fe15c1..2f60b14159 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -4377,12 +4377,16 @@ char* manager_taint_string(const Manager *m) {
assert(m);
- const char* stage[11] = {};
+ const char* stage[12] = {};
size_t n = 0;
if (m->taint_usr)
stage[n++] = "split-usr";
+ _cleanup_free_ char *usrbin = NULL;
+ if (readlink_malloc("/bin", &usrbin) < 0 || !PATH_IN_SET(usrbin, "usr/bin", "/usr/bin"))
+ stage[n++] = "unmerged-usr";
+
if (access("/proc/cgroups", F_OK) < 0)
stage[n++] = "cgroups-missing";