mirror of
https://github.com/systemd/systemd
synced 2024-10-04 15:21:01 +00:00
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).
This commit is contained in:
parent
dfce61dda7
commit
905dd992f8
|
@ -54,6 +54,10 @@ All tools:
|
|||
* `$SYSTEMD_SYSROOT_FSTAB` — if set, use this path instead of
|
||||
`/sysroot/etc/fstab`. Only useful for debugging `systemd-fstab-generator`.
|
||||
|
||||
* `$SYSTEMD_SYSFS_CHECK` — takes a boolean. If set, overrides sysfs container
|
||||
detection that ignores `/dev/` entries in fstab. Only useful for debugging
|
||||
`systemd-fstab-generator`.
|
||||
|
||||
* `$SYSTEMD_CRYPTTAB` — if set, use this path instead of `/etc/crypttab`. Only
|
||||
useful for debugging. Currently only supported by
|
||||
`systemd-cryptsetup-generator`.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue