Hi, Taylan Kammer <[email protected]> skribis:
> (mapped-devices > (list (mapped-device > (source (uuid "b3d059f8-1c4f-4569-88dd-5485825b4373")) > (target "guixsd") > (type luks-device-mapping)) > (mapped-device > (source (uuid "550d9258-bbbb-488c-af27-6b1fefa190ee")) > (target "home") > (type luks-device-mapping)))) > > (file-systems > (append > (list (file-system > (device "/dev/mapper/guixsd") > (mount-point "/") > (type "ext4") > (dependencies mapped-devices)) > (file-system > (device "/dev/mapper/home") > (mount-point "/home") > (type "ext4") > (dependencies mapped-devices))) > %base-file-systems)) [...] > It results in the error message: > > guix system: error: service 'file-system-/home' requires > 'device-mapping-home', which is not provided by any service [...] > It works when both '(dependencies mapped-devices)' clauses are simply > removed. Yes, it’s “expected”: using “/dev/mapper/xyz” as the device is enough to express the dependency. When passing (dependencies mapped-devices), the effect was to each file system depend on *both* mapped devices. This leads to an inconsistency because /dev/mapper/guixsd is “needed-for-boot” (i.e., set up from the initrd), whereas /dev/mapper/home is not (i.e., set up as a Shepherd service.) The solution is to either use the /dev/mapper/xyz names in the ‘device’ field, or to specify only the relevant mapped device in ‘dependencies’. Anyway, commit 68a58775e071d4b0e000b93ad121b6e64d161b79 fixes it by doing exactly what this config asks for: setting up all the mapped devices in the initrd. Thanks, Ludo’.
