[systemd-devel] [PATCH] fstab-generator: introduce rd.weak_sysroot to bypass failures in sysroot.mount

WANG Chao chaowang at redhat.com
Thu Aug 1 01:02:58 PDT 2013


On 08/01/13 at 08:49am, Colin Guthrie wrote:
> [Resend because I fail at reply-all]
> 
> 'Twas brillig, and WANG Chao at 01/08/13 06:36 did gyre and gimble:
> > On 07/30/13 at 04:40pm, Tom Gundersen wrote:
> >> On Tue, Jul 30, 2013 at 4:13 PM, Harald Hoyer <harald at redhat.com> wrote:
> >>> On 07/30/2013 03:46 PM, Zbigniew Jędrzejewski-Szmek wrote:
> >>>> Maybe rootfsflags=nofail could do be used as this flag?
> >>>
> >>> rootfsflags=nofail sounds ok, if it is not used for booting the initial system.
> >>
> >> Yeah, you are right, this looks like it should just work.
> >>
> >> Though the behavior of initrd-parse-etc.service and
> >> initrd-switch-root.service will be non-deterministic if this flag is
> >> specified (unless I'm missing something). Maybe they should be
> >> explicitly ordered After/Wants=sysroot.mount ? That may cause a long
> >> timeout, but at least there will be no emergency mode.
> > 
> > No, guys, nofail mount option will *only* work when device (or should I
> > say filesystem) doesn't exist.
> > 
> > From mount(8):
> > [..]
> >        _nofail_ Do not report errors for this device if it does not exist.
> 
> I'm not sure that description is 100% true under systemd. Looking at the
> code, it seems to control the dependencies of the mount units (namely
> changing a "Requires=" to the softer "Wants=")

rootflags=nofail only results in "mount -o nofail /dev/root /sysroot"

OTOH, bool variable "nofail" from add_mount(.., bool nofail, ..) is used
to changing "Requires=" to "Wants".

> 
> It may be worth trying to push an updated description into the mount man
> page to mention systemd's behaviour here?

Nothing to do with systemd. systemd will just pass "nofail" and other
mount options to mount.

> 
> > So if filesystem is corrupted or something else fails the sysroot.mount,
> > initrd-root-fs.target will never be reached.
> 
> Is this actually true? Given the above comment? It could easily be that
> the / mountpoint is handled more specially in systemd tho' (I've not
> looked at the code that closely).

Yes, that's true. sysroot.mount is automatically generated and
mandatory be required by initrd-root-fs.target.

Thanks
WANG Chao


More information about the systemd-devel mailing list