diff options
author | Lily Foster <lily@lily.flowers> | 2023-01-25 18:52:06 -0500 |
---|---|---|
committer | Lily Foster <lily@lily.flowers> | 2023-01-25 19:05:11 -0500 |
commit | 905dd992f8fbfe486e68808ce88e1662c970ab35 (patch) | |
tree | c2c75edb7f563a4c3d60c075aa35a7f4d5e0ac79 /src/fstab-generator/fstab-generator.c | |
parent | dfce61dda7b7b15b910221e5ca1673b371554368 (diff) | |
download | systemd-905dd992f8fbfe486e68808ce88e1662c970ab35.tar.gz |
fstab-generator: add SYSTEMD_SYSFS_CHECK env var
This forces processing of /dev entries in fstab when running in a
container is detected (checked as the existence of read-only /sys).
Diffstat (limited to 'src/fstab-generator/fstab-generator.c')
-rw-r--r-- | src/fstab-generator/fstab-generator.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 2ad86a8980..3288e117d7 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -9,6 +9,7 @@ #include "bus-locator.h" #include "chase-symlinks.h" #include "efi-loader.h" +#include "env-util.h" #include "fd-util.h" #include "fileio.h" #include "fstab-util.h" @@ -667,7 +668,7 @@ static int parse_fstab(bool initrd) { _cleanup_endmntent_ FILE *f = NULL; const char *fstab; struct mntent *me; - int r = 0; + int r = 0, sysfs_check = -1; if (initrd) fstab = sysroot_fstab_path(); @@ -705,7 +706,14 @@ static int parse_fstab(bool initrd) { continue; } - if (is_device_path(what)) { + if (sysfs_check < 0) { + r = getenv_bool_secure("SYSTEMD_SYSFS_CHECK"); + if (r < 0 && r != -ENXIO) + log_debug_errno(r, "Failed to parse $SYSTEMD_SYSFS_CHECK, ignoring: %m"); + sysfs_check = r != 0; + } + + if (sysfs_check && is_device_path(what)) { log_info("/sys/ is read-only (running in a container?), ignoring fstab device entry for %s.", what); continue; } |