I believe you can have a hard time if you dont do (the last step atleast) with a var.mount file. The mount files are special as systemd will pull those up implicitly if they are needed. Maybe you could rework your solution, so that one service mounts your first or second choice in a separate directory (/run/mymount) then you add a var.mount unit that depends ("BindsTo") on said service and bind-mounts /run/mymount to var. That way you will hook into the existing systemd machinery. I did something similar with an overlayfs once. Tested to work correctly, even if you have further mounts like /var/tmp (systemd should automatically add dependency to var.mount). Norbert # file rootfs-bindmount-var.service [Unit] Description=Bind-mount variable storage (/var) Documentation=man:file-hierarchy(7) ConditionPathIsSymbolicLink=!/var # ConditionPathIsReadWrite=!/var DefaultDependencies=no Conflicts=umount.target Before=local-fs.target umount.target After=local-fs-pre.target [Service] Type=oneshot RemainAfterExit=yes ExecStartPre=-/bin/mkdir /run/varoverlay ExecStartPre=/bin/mount --make-private -n -t tmpfs tmpfs_root_ovl /run/varoverlay ExecStartPre=/bin/mkdir /run/varoverlay/lower /run/varoverlay/upper /run/varoverlay/work ExecStart=/bin/mount --make-private -n --bind /var /run/varoverlay/lower ExecStop=/bin/umount -n /run/varoverlay/lower ExecStopPost=/bin/umount -n /run/varoverlay ExecStopPost=/bin/rmdir /run/varoverlay # file var.mount [Unit] Description=variable storage (/var) Documentation=man:file-hierarchy(7) ConditionPathIsSymbolicLink=!/var ConditionPathIsReadWrite=!/var After=rootfs-bindmount-var.service BindsTo=rootfs-bindmount-var.service [Mount] What=overlay_var Where=/var Type=overlay Options=lowerdir=/run/varoverlay/lower,upperdir=/run/varoverlay/upper,workdir=/run/varoverlay/work,redirect_dir=on,index=on,xino=on _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel