Subject: Re: bug#46555: LVM swap continuously fails guix system: error: service 'swap-/dev/mapper/guix-swap' requires 'device-mapping-guix-swap', which is not provided by any service

From: Shyam Saran <[email-masked]>
Date: Tue, 2 Mar 2021 16:04:55 +0530

As mentioned I had removed all dependency for root "/" fs

but result is same

$ guix  system   build ~/tmp/config.scm
guix system: warning: the following groups appear more than once: users
guix system: error: service 'swap-/dev/mapper/guix-swap' requires
'device-mapping-guix-swap', which is not provided by any service

Then again removed all dependencies from all fs /var /gnu /tmp etc
But the result is the same.

$ guix  system   build ~/tmp/config.scm
guix system: warning: the following groups appear more than once: users
guix system: error: service 'swap-/dev/mapper/guix-swap' requires
'device-mapping-guix-swap', which is not provided by any service

Thanks

On Mon, 1 Mar 2021 at 14:56, Ludovic Courtès <[email-masked]> wrote:

> Hi Shyam,
>
> Shyam Saran <[email-masked]> skribis:
>
> > Result of application of system build command
> >
> > $ guix  system   build ~/tmp/config.scm
> >
> >                2s
> > guix system: warning: the following groups appear more than once: users
> > guix system: error: service 'swap-/dev/mapper/guix-swap' requires
> > 'device-mapping-guix-swap', which is not provided by any service
>
> The problem here is that you had:
>
>   (file-system
>     (mount-point "/")
>     ;; …
>     (needed-for-boot? #t)
>     (dependencies %localmachine-mapped-devices))
>
> All the needed-for-boot file systems had all the mapped devices in
> ‘dependencies’.  Thus, no ‘device-mapping-guix-swap’ Shepherd service
> was created, because that device mapping was needed at boot.
>
> The solution is to remove the ‘dependencies’ field for all your file
> systems.  Since they have /dev/mapper/… as their ’device’, you don’t
> need ‘dependencies’: it’s automatically inferred.  If, after this
> change, you run:
>
>   guix system shepherd-graph /tmp/config.scm| xdot -
>
> you can see that the ‘swap-/dev/mapper/guix-swap’ service depends on
> ‘device-mapping-guix-swap’.
>
> HTH!
>
> Ludo’.
>