[systemd-devel] Suppressing automounting
Andrei Borzenkov
arvidjaar at gmail.com
Fri Aug 29 21:00:13 PDT 2014
В Fri, 29 Aug 2014 14:59:05 -0400
worley at alum.mit.edu (Dale R. Worley) пишет:
> > From: worley at alum.mit.edu (Dale R. Worley)
>
> > When reading /etc/fstab a few special mount options are
> > understood by systemd which influence how dependencies are
> > created for mount points from /etc/fstab. [...] If
> > x-systemd.device-timeout= is specified it may be used to
> > configure how long systemd should wait for a device to show up
> > before giving up on an entry from /etc/fstab. Specify a time in
> > seconds or explicitly specify a unit as s, min, h, ms.
> >
> > I haven't tried this yet, but it should suffice for my problem.
>
> OK, that test failed: systemd does *not* stop attempting to mount a
> partition after x-systemd.device-timeout has passed.
>
You misunderstand what happens here. x-systemd.device-timeout sets
*job* timeout - i.e. how long systemd waits when requested to mount
filesystem ("systemctl start Store.mount" in this case).
But when creating mount unit systemd also silently adds dependency to
*device*:
bor at opensuse:~/src/systemd> systemctl show boot.mount -p WantedBy --no-pager
WantedBy=dev-sda1.device
Which has the effect that if device was not present at boot but appears
later, the very appearance of device triggers start of mount unit -
filesystem gets mounted.
And yes, this makes semantic very different from
traditional /etc/fstab. And I'm not sure it has to do it by default ...
honestly, I'm not sure it has to do it at all. I think about situation
where I have persistent device names (SAN, iSCSI, LVM) and need to do
maintenance which causes device nodes disappear and appear again. I
definitely do not want any filesystem to be suddenly mounted in this
case until I have finished my tasks.
And of course it is not documented anywhere.
> Here's the line in /etc/fstab:
>
> /dev/Freeze02/Store2 /Store ext4 nofail,x-systemd.device-timeout=1m,defaults 0 0
>
> And here's /run/systemd/generator/Store.mount:
>
> # Automatically generated by systemd-fstab-generator
>
> [Unit]
> SourcePath=/etc/fstab
> DefaultDependencies=no
> After=local-fs-pre.target
> Conflicts=umount.target
> Before=umount.target
>
> [Mount]
> What=/dev/Freeze02/Store2
> Where=/Store
> Type=ext4
> FsckPassNo=0
> Options=nofail,x-systemd.device-timeout=1m,defaults
>
I expected timeout to go in generated unit actually, not in mount
options.
More information about the systemd-devel
mailing list