summaryrefslogtreecommitdiff
path: root/src/fstab-generator
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-03-11 17:57:15 +0100
committerLennart Poettering <lennart@poettering.net>2014-03-11 18:02:27 +0100
commit689aede8c622ba68d9060e4edee27364445b2007 (patch)
tree733aef530e7e3861394eab445ce21138c7607071 /src/fstab-generator
parent7a249d0c1b2b2fa46e4dd7ff633699fe0f19fb5a (diff)
fstab-generator: when running in a container, ignore fstab entries referring to device nodes
Since these device nodes will never appear in the container anyway there's no point in waiting for them. This makes it easier to boot images generated with general purpose installers like Anaconda which unconditionally populate /etc/fstab to boot in containers.
Diffstat (limited to 'src/fstab-generator')
-rw-r--r--src/fstab-generator/fstab-generator.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
index 34cd72051..a9a5c0203 100644
--- a/src/fstab-generator/fstab-generator.c
+++ b/src/fstab-generator/fstab-generator.c
@@ -35,6 +35,7 @@
#include "fileio.h"
#include "generator.h"
#include "strv.h"
+#include "virt.h"
static const char *arg_dest = "/tmp";
static bool arg_fstab_enabled = true;
@@ -77,6 +78,11 @@ static int add_swap(const char *what, struct mntent *me) {
assert(what);
assert(me);
+ if (detect_container(NULL) > 0) {
+ log_info("Running in a container, ignoring fstab swap entry for %s.", what);
+ return 0;
+ }
+
r = mount_find_pri(me, &pri);
if (r < 0) {
log_error("Failed to parse priority");
@@ -341,6 +347,11 @@ static int parse_fstab(bool initrd) {
if (!what)
return log_oom();
+ if (detect_container(NULL) > 0 && is_device_path(what)) {
+ log_info("Running in a container, ignoring fstab device entry for %s.", what);
+ continue;
+ }
+
where = initrd ? strappend("/sysroot/", me->mnt_dir) : strdup(me->mnt_dir);
if (!where)
return log_oom();