I have this problem with systemd when I have some units symlinks points to some locations in some unmounted filesystems:
A post about it is there : Systemd linked unit files on mounted disk fail to load
The problem is that the files in /etc/systemd are symlinks and so when systemd starts up it tries to read and parse them before any filesystem is mounted; because the filesystem isn't mounted the symlink doesn't refer to a valid file and so the service isn't loaded. I'd love to know an answer to this 'cos I have units I'd like to be loaded from an NFS server and suffer the same problem; to date I've had to copy the unit to the root partition and enable that :-(
I could solve it copying all units symlinks targets to /etc/systemd but I would prefer another solution. I've tried to to a target unit that would start all units depending on some filesystem mounting
[Unit] Description=Unit that starts all units depending on /home mount After=home.mount Requires=home.mount Before=some_other_unit.service
but it does not work (when I start manually this target after reboot, som_other_unit is not loaded. Some suggestions?