#include "fileio.h"
#include "generator.h"
#include "strv.h"
+#include "virt.h"
static const char *arg_dest = "/tmp";
static bool arg_fstab_enabled = true;
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");
return 0;
if (path_equal(where, "/")) {
+ /* The root disk is not an option */
automount = false;
noauto = false;
nofail = false;
source);
if (post && !noauto && !nofail && !automount)
- fprintf(f,
- "Before=%s\n",
- post);
+ fprintf(f, "Before=%s\n", post);
if (passno != 0) {
r = generator_write_fsck_deps(f, arg_dest, what, where, fstype);
return -errno;
}
- if (!noauto) {
- if (post) {
- lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
- if (!lnk)
- return log_oom();
-
- mkdir_parents_label(lnk, 0755);
- if (symlink(unit, lnk) < 0) {
- log_error("Failed to create symlink %s: %m", lnk);
- return -errno;
- }
+ if (!noauto && post) {
+ lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
+ if (!lnk)
+ return log_oom();
+
+ mkdir_parents_label(lnk, 0755);
+ if (symlink(unit, lnk) < 0) {
+ log_error("Failed to create symlink %s: %m", lnk);
+ return -errno;
}
}
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();
static int add_root_mount(void) {
_cleanup_free_ char *o = NULL, *what = NULL;
- bool noauto, nofail;
if (isempty(arg_root_what)) {
log_debug("Could not find a root= entry on the kernel commandline.");
if (!o)
return log_oom();
- noauto = mount_test_option(arg_root_options, "noauto");
- nofail = mount_test_option(arg_root_options, "nofail");
-
log_debug("Found entry what=%s where=/sysroot type=%s", what, strna(arg_root_fstype));
return add_mount(what,
"/sysroot",
arg_root_fstype,
o,
1,
- noauto, nofail,
+ false,
+ false,
false,
SPECIAL_INITRD_ROOT_FS_TARGET,
"/proc/cmdline");