[arch-general] misconfigured systemd dependencies
Chris Tonkinson
chris at tonkinson.com
Wed Jul 9 05:59:48 EDT 2014
Hello,
I have a LUKS drive (called "locker-1"), which is necessary to be
properly mounted before ZFS can import my pool on boot. I believe
systemd needs to be explicitly configured to mount dm-crypt devices
before doing anything ZFS-related, but I'm relatively new to working
with systemd so I'm stuck on the implementation. I believe the following
is revelant configuration information:
~ $ systemctl list-units | grep "crypt\|zfs"
systemd-cryptsetup at locker\x2d1.service loaded active exited ...
zfs-import-cache.service loaded active exited ...
zfs-mount.service loaded active exited ...
zfs-share.service loaded active exited ...
system-systemd\x2dcryptsetup.slice loaded active active ...
cryptsetup.target loaded active active ...
zfs.target loaded active active ...
~ $ find /usr/lib/systemd/ -name *crypt*
/usr/lib/systemd/system-generators/systemd-cryptsetup-generator
/usr/lib/systemd/systemd-cryptsetup
/usr/lib/systemd/system/cryptsetup.target
/usr/lib/systemd/system/sysinit.target.wants/cryptsetup.target
~ $ find /usr/lib/systemd/ -name *zfs*
/usr/lib/systemd/system-preset/50-zfs.preset
/usr/lib/systemd/system/zfs.target
/usr/lib/systemd/system/zfs-share.service
/usr/lib/systemd/system/zfs-import-cache.service
/usr/lib/systemd/system/zfs-import-scan.service
/usr/lib/systemd/system/zfs-mount.service
Based on my limited understanding of systemd dependency resolution
from [1], I created a custom file to force ZFS to depend on my LUKS device:
~ $ cat /etc/systemd/system/zfs-import-cache.service.d/luks.conf
[Unit]
Requires=systemd-cryptsetup at locker\x2d1.service
After=systemd-cryptsetup at locker\x2d1.service
I rebooted and no joy, though `systemd-delta` does see the override:
~ $ systemd-delta
[EXTENDED] /run/systemd/system/session-c2.scope →
/run/systemd/system/session-c2.scope.d/90-SendSIGHUP.conf
[EXTENDED] /run/systemd/system/session-c2.scope →
/run/systemd/system/session-c2.scope.d/90-After-systemd-user-sessions\x2eservic
[EXTENDED] /run/systemd/system/session-c2.scope →
/run/systemd/system/session-c2.scope.d/90-After-systemd-logind\x2eservice.conf
[EXTENDED] /run/systemd/system/session-c2.scope →
/run/systemd/system/session-c2.scope.d/90-Description.conf
[EXTENDED] /run/systemd/system/session-c2.scope →
/run/systemd/system/session-c2.scope.d/90-Slice.conf
[EXTENDED] /usr/lib/systemd/system/zfs-import-cache.service →
/etc/systemd/system/zfs-import-cache.service.d/luks.conf
Looking back, I notice that ZFS has definitions for both importing via
cache or scan, so I duplicated this override for
`zfs-import-scan.service` and get the same result.
Oddly (to me), the boot log shows ZFS inner workings, but nothing
about dm-crypt:
~ $ journalctl -b | grep 'zed\['
Jul 09 05:20:03 vigilance.thetonk.net zed[720]: ZFS Event Daemon 0.6.3-1
Jul 09 05:20:03 vigilance.thetonk.net zed[720]: Processing events
since eid=0
Jul 09 05:20:03 vigilance.thetonk.net zed[720]: Invoking
"all-syslog.sh" eid=1 pid=726
Jul 09 05:20:03 vigilance.thetonk.net zed[727]: eid=1 class=statechange
Jul 09 05:20:03 vigilance.thetonk.net zed[720]: Finished
"all-syslog.sh" eid=1 pid=726 exit=0
Jul 09 05:20:03 vigilance.thetonk.net zed[720]: Invoking
"all-syslog.sh" eid=2 pid=729
...
~ $ journalctl -b | grep 'crypt'
~ $
Any advice would be greatly appreciated. For what it's worth, this is
just the first drive of six (I'm in the process of encrypting my RAID-Z2
pool in-place) so the DRYest-configuration solution is optimal but at
this point I'll take what I can get.
[1]:
https://wiki.archlinux.org/index.php/Systemd#Editing_provided_unit_files
Cheers,
-Chris
PS: The only thing that sticks out at me visually at this point is that
"\x2d" in places; is the inclusion of a hyphen in my LUKS device name
causing problems? It seems like systemd sometimes? does magic with
hyphens and paths, which is why I assume it's being encoded but I figure
I would ask.
--
Chris Tonkinson
610.425.7807
"Lead, follow, or get out of the way."
-Thomas Paine
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/arch-general/attachments/20140709/43f0d1e6/attachment.asc>
More information about the arch-general
mailing list