On Thursday 21 August 2014 at 22:06:49, Ivan Shapovalov wrote:  
> On Thursday 21 August 2014 at 01:03:20, Lennart Poettering wrote:     
> > [...]
> > > > 
> > > > ...missing sysroot's fsck, as well as any other x-initrd mounts and 
> > > > their fsck instances.
> > > > 
> > > > Seems that sysroot.mount alone isn't sufficient.
> > > 
> > > ...Anything on this?
> > > 
> > > Should we add yet another passive target(s), something like fsck-pre? I 
> > > don't
> > > actually know what is the best way to tackle this. The resume unit shall 
> > > be
> > > activated before any writes to any block devices, including fsck, 
> > > cryptsetup
> > > and whatever else.
> > 
> > Hmm, so I though a bit about this, and I think we should make the
> > following changes to systemd:
> > 
> > a) move local-fs-pre.target before all the fsck. This way we can make
> >    use of it as a barrier against modifications of any fs.
> 
> ...all fsck except the systemd-fsck-root.service, right? It's already ordered
> before local-fs-pre.target.
> 
> Makes sense; then the resume unit will be
> 
>     Wants=local-fs-pre.target
>     Before=local-fs-pre.target systemd-fsck-root.service 
> systemd-remount-fs.service shutdown.target
>     ConditionPathIsReadWrite=!/
> 
> However, this breaks when there is a legacy /usr mount without fsck...
> src/core/mount.c:mount_add_default_dependencies() does not add
> After=local-fs-pre.target if the mount in question is / or /usr.
> 
> Hence, the legacy /usr mount is missed by this scheme.

Actually, I don't pretty understand the reasoning behind skipping the default
dependencies on /usr mount (commit b24de9d2, but the commit message doesn't
say much).

So hypothetically there are three solutions of different ugliness and
acceptability:

- introduce yet another target (all-fs-pre.t?)
- revert b24de9d2
- add explicit Before=usr.mount to the resume unit

-- 
Ivan Shapovalov / intelfx /

> 
> > 
> > 
> > b) introduce initrd-fs-pre.target that then plays a similar role, but in
> >    the initrd.
> 
> Is it neeeded? IIUC, local-fs-pre.target can be used in initramfs as well,
> the default dependency on this target is still generated on all mounts.
> (except in-initramfs /usr, see the above problem)
> 
> > 
> > A service that wants to run before any fs is touched should then order
> > itself before both and everything should be good.
> > 
> > If this makes sense, I would be happy to take a patch.
> > 
> > I'd be willing to merge a good patch for a generator + mini-tool that
> > parse the resume= option into systemd as well, btw.
> 
> I've already implemented the generator and resume tool prototype. Sure, when 
> we
> solve the dependencies problem, I'll submit this for inclusion.
> 
> 

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to