[email protected] (Ludovic Courtès) writes: > 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’.
Thank you for the explanation and the fix! :-) Taylan
