[CC harald] Not sure if this is right way to do or not but I will give more background about the issue.
This assumption seems to be built into initramfs and systemd that root should always be mountable. If one can't mount root, it is a fatal failure. But in case of kdump initramfs, this assumption is no more valid. Core might be being saved to a target which is not root (say over ssh). And even if mounting root fails, it is ok. So we kind of need a mode (possibly driven by command line option) where if mouting root failed, it is ok and continue with mouting other targets and kdump module will then handle errors. Thanks Vivek On Tue, Jul 30, 2013 at 07:53:11PM +0800, WANG Chao wrote: > If specified kernel command line rd.weak_sysroot, fstab-generate will > generate a weaker version of sysroot.mount: > - It's not required by initrd-root-fs.target. > - It's not before initrd-root-fs.target. > > So that failure in the weaker sysroot.mount will not fail > initrd-root-fs.target. And systemd will try continue rather than > entering isolated emergency mode. > > Signed-off-by: WANG Chao <chaow...@redhat.com> > --- > man/kernel-command-line.xml | 10 ++++++++++ > man/systemd-fstab-generator.xml | 10 ++++++++++ > src/fstab-generator/fstab-generator.c | 5 ++++- > 3 files changed, 24 insertions(+), 1 deletion(-) > > diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml > index a4b7d13..0c2e97d 100644 > --- a/man/kernel-command-line.xml > +++ b/man/kernel-command-line.xml > @@ -274,6 +274,16 @@ > </varlistentry> > > <varlistentry> > + > <term><varname>rd.weak_sysroot</varname></term> > + > + <listitem> > + <para>Configures the sysroot.mount > + logic in initrd. For details, see > + > <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para> > + </listitem> > + </varlistentry> > + > + <varlistentry> > <term><varname>modules-load=</varname></term> > > <term><varname>rd.modules-load=</varname></term> > > diff --git a/man/systemd-fstab-generator.xml b/man/systemd-fstab-generator.xml > index 4bd25bf..de0ed2f 100644 > --- a/man/systemd-fstab-generator.xml > +++ b/man/systemd-fstab-generator.xml > @@ -101,6 +101,16 @@ > the initrd. </para></listitem> > </varlistentry> > > + <varlistentry> > + > <term><varname>rd.weak_sysroot</varname></term> > + > + <listitem><para>If specified, systemd will > + ingore failures in sysroot.mount and try to > + continue rather than enter emergency mode. > + It is honored only by initial RAM disk > + (initrd). </para></listitem> > + </varlistentry> > + > </variablelist> > </refsect1> > > diff --git a/src/fstab-generator/fstab-generator.c > b/src/fstab-generator/fstab-generator.c > index c17299f..449e725 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 weak = false; > > r = read_one_line_file("/proc/cmdline", &line); > if (r < 0) { > @@ -544,6 +545,8 @@ static int parse_new_root_from_proc_cmdline(void) { > > free(opts); > opts = o; > + } else if (streq(word, "rd.weak_sysroot")) { > + weak=true; > } > } > > @@ -558,7 +561,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, false, weak, 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