Currently we don't respect noauto/nofail root mount options (from rootflags kernel cmdline). We should map these two flags to the corresponding boolean variable noauto and nofail when calling add_mount().
Signed-off-by: WANG Chao <chaow...@redhat.com> --- Days ago, I sent a patch to add rd.weak_sysroot. It seems you guys don't like it, even me neither :( So I come up with this update. It looks more reasonable. With this patch, I can set rootflags=nofail to bypass sysroot failure, which blocking initrd-root-fs.target. Please put your comments. Thanks! src/fstab-generator/fstab-generator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index c17299f..87b17cd 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -492,6 +492,7 @@ static int parse_new_root_from_proc_cmdline(void) { char *w, *state; int r; size_t l; + bool noauto, nofail; r = read_one_line_file("/proc/cmdline", &line); if (r < 0) { @@ -547,6 +548,9 @@ static int parse_new_root_from_proc_cmdline(void) { } } + noauto = !!strstr(opts, "noauto"); + nofail = !!strstr(opts, "nofail"); + if (!what) { log_debug("Could not find a root= entry on the kernel commandline."); return 0; @@ -558,7 +562,7 @@ static int parse_new_root_from_proc_cmdline(void) { } log_debug("Found entry what=%s where=/sysroot type=%s", what, type); - r = add_mount(what, "/sysroot", type, opts, 0, false, false, false, + r = add_mount(what, "/sysroot", type, opts, 0, noauto, nofail, false, false, NULL, NULL, NULL, SPECIAL_INITRD_ROOT_FS_TARGET, "/proc/cmdline"); return (r < 0) ? r : 0; -- 1.8.3.1 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel