From: Shyam Saran <syamsaran12345@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 46555@debbugs.gnu.org
Subject: 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
Date: Tue, 23 Feb 2021 20:53:47 +0530 [thread overview]
Message-ID: <CABVJY8rP9fCPQHG23o67Lx7uXgygGT7odejWtFY4dAQwGjbR4g@mail.gmail.com> (raw)
In-Reply-To: <875z2ke9xe.fsf@gnu.org>
[-- Attachment #1.1: Type: text/plain, Size: 1266 bytes --]
Thanks for response, I am attaching config.scm
If required then will try to make this file cleaner.
On Mon, 22 Feb 2021 at 14:50, Ludovic Courtès <ludo@gnu.org> wrote:
> Hi Shyam,
>
> Shyam Saran <syamsaran12345@gmail.com> skribis:
>
> > LVM/Device Mapper swap continuously fails for os configuration
> >
> >
> > with
> >
> > guix system: error: service 'swap-/dev/mapper/guix-swap' requires
> > 'device-mapping-guix-swap', which is not provided by any service
> >
> >
> >
> > which originates from code
> >
> >
> >
> > (define swap-service-type
> > (shepherd-service-type
> > 'swap
> > (lambda (device)
> > (define requirement
> > (if (and (string? device)
> > (string-prefix? "/dev/mapper/" device))
> > (list (symbol-append 'device-mapping-
> > (string->symbol (basename device))))
> > '()))
>
> You could need to define an LVM “device mapping” that provides
> /dev/mapper/guix-swap:
>
>
> https://guix.gnu.org/manual/devel/en/html_node/Mapped-Devices.html#index-lvm_002ddevice_002dmapping
>
> If you did already, could you send your complete config so we can have a
> look?
>
> Thanks,
> Ludo’.
>
/shyam
[-- Attachment #1.2: Type: text/html, Size: 2133 bytes --]
[-- Attachment #2: config.scm --]
[-- Type: text/x-scheme, Size: 34315 bytes --]
;; This is an operating system configuration generated
(use-modules (guix utils))
(use-modules (guix packages))
(use-modules (gnu services networking))
(use-modules (gnu services audio))
(use-modules (gnu) (gnu system nss))
(use-service-modules networking ssh)
(use-package-modules bootloaders certs suckless wm)
(use-service-modules desktop networking cups ssh xorg avahi mail)
(use-package-modules certs gnome cups)
(use-modules (gnu packages shells))
(use-modules (gnu packages vim))
(use-modules (gnu))
(use-package-modules screen)
\f
;; other guix
(use-modules (gnu system locale))
(use-modules (guix store))
(use-modules (rnrs lists))
(use-modules (srfi srfi-1))
(use-package-modules base idutils)
(use-service-modules dns mcron messaging)
\f
(define (open-udev-lvm-device source target)
"Return a gexp that maps SOURCES to TARGETS as a LVM device, using
'lvm'."
(with-imported-modules (source-module-closure '((gnu build file-systems)))
#~(let ((source #$source)
(lvm-bin #$(file-append lvm2-static "/sbin/lvm")))
;; Use 'lvm2-static', not 'lvm2', to avoid pulling the
;; whole world inside the initrd (for when we're in an initrd).
(begin
(format #t "Enabling ~a~%" #$target)
(system* lvm-bin "vgchange" "-ay" (car (string-split #$target #\-)))
(sleep 1)
(zero? (system* lvm-bin "lvchange" "-aay" "-y" "--sysinit" "--ignoreskippedcluster"
(string-join (string-split #$target #\-) "/")))))))
(define (close-udev-lvm-device sources target)
"Return a gexp that closes TARGET, a LVM device."
#~(zero? (system* #$(file-append lvm2-static "/sbin/lvm")
"lvchange" "-an" "-y" (string-join (string-split #$target #\-) "/"))))
;; The type of LVM mapped devices.
(define udev-lvm-device-mapping (mapped-device-kind (open open-udev-lvm-device)
;; (check check-udev-lvm-device)
(close close-udev-lvm-device)))
\f
(define %local-fs-boot-efi-partition "/dev/sda1")
(define %local-grub-ubuntu-menuentries (list (menu-entry (label "Ubuntu GNU/Linux")
(linux "(lvm/tf1e5mXubuntu-boot)/vmlinuz")
(linux-arguments '("root=/dev/mapper/tf1e5mXubuntu-root ro --verbose nosplash debug"))
(initrd "(lvm/tf1e5mXubuntu-boot)/initrd.img"))))
\f
(define %localmachine-host-name "komputilo")
(define %localmachine-account-uid 1000)
(define %localmachine-account-user-name "s")
(define %localmachine-account-comment "shyam")
(define %localmachine-account-group-name "users")
(define %localmachine-account-group-gid 1000)
(define %localmachine-account-supplementry-groups '("wheel" "netdev" "audio" "video"))
(define %localmachine-account-home-parent-directory "/home")
(define %localmachine-account-shell #~(string-append #$zsh "/bin/zsh"))
(define %localmachine-gdm-auto-login #f)
(define %localmachine-gdm-allow-empty-password #t)
(define %localmachine-account-create-home-directory #f)
(define %localmachine-guix-substitute-urls '("https://ci.guix.gnu.org"
"https://bayfront.guixsd.org"
"http://guix.genenetwork.org"
"https://guix.tobias.gr"
"https://ci.guix.info/"
;; "https://berlin.guixsd.org"
"https://berlin.guix.gnu.org"))
(define %localmachine-guix-extra-options '(
;; "--max-jobs=2"
;; "--cores=1"
"--gc-keep-derivations=yes"
"--gc-keep-outputs=yes"))
(define %localmachine-guix-use-substitutes #t) ;always true
(define %localmachine-network-manager-dns "dnsmasq")
(define %localmachine-default-realm #f)
\f
(use-modules (gnu packages linux))
(use-modules (guix modules))
(define (open-non-udev-lvm-device source targets)
"Return a gexp that maps SOURCES to TARGETSS as a LVM device, using
'lvm'."
(with-imported-modules (source-module-closure '((gnu build file-systems)))
#~(let ((source #$source)
(targets '#$targets)
(lvm-bin #$(file-append lvm2-static "/sbin/lvm")))
;; Use 'lvm2-static', not 'lvm2', to avoid pulling the
;; whole world inside the initrd (for when we're in an initrd).
(begin
(format #t "Enabling ~a~%" '#$targets)
(sleep 1)
(system* lvm-bin "vgscan" "--mknodes")
(sleep 1)
(map (lambda (file) (system* lvm-bin "vgchange" "-ay" (car (string-split file #\-))))
'#$targets)
(sleep 1)
(map (lambda (file) (zero? (system* lvm-bin "lvchange" "-aay" "-y" "--sysinit" "--ignoreskippedcluster"
(string-join (string-split file #\-) "/"))))
'#$targets)
#t))))
(define (close-non-udev-lvm-device sources targets)
"Return a gexp that closes TARGETS, a LVM device."
#~(begin
(map (lambda (file) (zero? (system* #$(file-append lvm2-static "/sbin/lvm")
"lvchange" "-an" "-y" (string-join (string-split file #\-) "/"))))
'#$targets)
#t))
;; The type of LVM mapped devices.
(define non-udev-lvm-device-mapping (mapped-device-kind (open open-non-udev-lvm-device)
;; (check check-non-udev-lvm-device)
(close close-non-udev-lvm-device)))
\f
(define %localmachine-mapped-device-guix-root (mapped-device (source "/dev/sda31")
(target "guix-root")
(type non-udev-lvm-device-mapping)))
(define %localmachine-mapped-device-guix-boot (mapped-device (source "/dev/sda31")
(target "guix-boot")
(type non-udev-lvm-device-mapping)))
(define %localmachine-mapped-device-guix-gnu (mapped-device (source "/dev/sda31")
(target "guix-gnu")
(type non-udev-lvm-device-mapping)))
(define %localmachine-mapped-device-guix-swap (mapped-device (source "/dev/sda31")
(target "guix-swap")
(type non-udev-lvm-device-mapping)))
(define %localmachine-mapped-device-guix-tmp (mapped-device (source "/dev/sda31")
(target "guix-tmp")
(type non-udev-lvm-device-mapping)))
(define %localmachine-mapped-device-guix-var (mapped-device (source "/dev/sda31")
(target "guix-var")
(type non-udev-lvm-device-mapping)))
(define %localmachine-mapped-device-house-home (mapped-device (source "/dev/test")
(target "house-home")
(type non-udev-lvm-device-mapping)))
\f
(define %localmachine-mapped-devices (list %localmachine-mapped-device-guix-root
%localmachine-mapped-device-guix-boot
%localmachine-mapped-device-guix-gnu
%localmachine-mapped-device-guix-var
%localmachine-mapped-device-guix-swap
%localmachine-mapped-device-guix-tmp
%localmachine-mapped-device-house-home))
\f
;;; guix system: error: service 'swap-/dev/mapper/guix-swap' requires 'device-mapping-guix-swap', which is not provided by any service
(define %localmachine-swap-devices (list "/dev/mapper/guix-swap"))
\f
(define %localmachine-file-system-guix-root (file-system (mount-point "/")
(device "/dev/mapper/guix-root")
(type "ext4")
(check? #f)
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #t)
(dependencies %localmachine-mapped-devices)))
;; (define %localmachine-file-system-guix-swap (file-system (mount-point "/xyz")
;; (device (string-append "/dev/mapper/guix-swap"))
;; (type "ext4")
;; (check? #f)
;; (mount? #f)
;; (create-mount-point? #f)
;; (needed-for-boot? #t)
;; (dependencies %localmachine-mapped-devices)))
(define %localmachine-file-system-guix-boot (file-system (mount-point "/boot")
(device "/dev/mapper/guix-boot")
(type "ext4")
(check? #f)
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #t)
(dependencies (append (list %localmachine-file-system-guix-root)
%localmachine-mapped-devices))))
(define %localmachine-file-system-guix-gnu (file-system (mount-point "/gnu")
(device "/dev/mapper/guix-gnu")
(type "ext4")
(check? #f)
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #t)
(dependencies (append (list %localmachine-file-system-guix-root)
%localmachine-mapped-devices))))
(define %localmachine-file-system-guix-tmp (file-system (mount-point "/tmp")
(device "/dev/mapper/guix-tmp")
(type "ext4")
(check? #f)
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #t)
(dependencies (append (list %localmachine-file-system-guix-root)
%localmachine-mapped-devices))))
(define %localmachine-file-system-guix-var (file-system (mount-point "/var")
(device "/dev/mapper/guix-var")
(type "ext4")
(check? #f)
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #t)
(dependencies (append (list %localmachine-file-system-guix-root)
%localmachine-mapped-devices))))
(define %localmachine-file-system-house-home (file-system (mount-point "/home")
(device "/dev/mapper/house-home")
(type "ext4")
(check? #f)
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #f)
(dependencies (append (list ;; %localmachine-file-system-guix-root
)
%localmachine-mapped-devices))))
\f
(define %localmachine-file-system-boot-efi (file-system (mount-point "/boot/efi")
(device "/dev/sda1")
(mount? #t)
(create-mount-point? #t)
(needed-for-boot? #t)
(type "vfat")
(dependencies (append (list %localmachine-file-system-guix-boot
%localmachine-file-system-guix-root)
%localmachine-mapped-devices))))
\f
(define %localmachine-lvm-mount-home-file-systems %localmachine-file-system-house-home)
\f
(define %localmachine-mount-lvm-system-file-systems (list %localmachine-file-system-guix-root
;; %localmachine-file-system-guix-swap
%localmachine-file-system-guix-boot
%localmachine-file-system-guix-gnu
%localmachine-file-system-guix-tmp
%localmachine-file-system-guix-var))
\f
(define %localmachine-lvm-system-file-systems (append %localmachine-mount-lvm-system-file-systems
%localmachine-lvm-mount-home-file-systems))
\f
(define %localmachine-lvm-file-systems (append %localmachine-lvm-system-file-systems))
\f
(define %localmachine-other-file-systems (list %localmachine-file-system-boot-efi))
\f
(define %localmachine-file-systems (append %localmachine-lvm-file-systems
%localmachine-other-file-systems
%base-file-systems))
\f
;; packages
(use-modules (gnu packages glib))
(define %localmachine-other-packages (list "polkit"
"polkit-gnome"
"autorandr"
"xmodmap"
"hplip"
"simple-scan"
"xsane"
"sane-backends"
"sane-backends-minimal"
"glib-networking"
"xf86-input-evdev"))
(define %localmachine-system-selected-package-names (list "glibc-utf8-locales"
"gdm"
"gpm"
"slock" ; need suid
"zsh"
"stumpwm"
"sbcl-stumpwm-cpu" "sbcl-stumpwm-mem" "sbcl-stumpwm-numpad-layouts" "sbcl-stumpwm-screenshot" "sbcl-stumpwm-winner-mode"
"guile-wm"
"windowmaker"
;; "findutils"
"idutils"
"dovecot"
"xinput"
"ibus"
"m17n-lib"
"m17n-db"
;; "twm"
;; "herbstluftwm"
"ecryptfs-utils"))
\f
(define %localmachine-package-names-for-installation
(append %localmachine-other-packages
%localmachine-system-selected-package-names))
(define %localmachine-system-desktop-packages
(list lvm2
;; for HTTPS access
nss-certs
;; for user mounts
gvfs))
(define %localmachine-system-selected-packages
(map specification->package
%localmachine-package-names-for-installation))
(define %localmachine-system-packages (append %localmachine-system-desktop-packages
%localmachine-system-selected-packages))
(define %localmachine-reinit-packages (append %localmachine-system-packages
%base-packages))
\f
(define %localmachine-packages %localmachine-reinit-packages)
\f
(define %localmachine-keyboard-layout (keyboard-layout "us" "altgr-intl"))
\f
(define %localmachine-grub-ubuntu-menuentries %local-grub-ubuntu-menuentries)
(define %localmachine-efi-bootloader
(bootloader-configuration (bootloader grub-efi-bootloader)
(target "/boot/efi")
(keyboard-layout %localmachine-keyboard-layout)
(menu-entries %localmachine-grub-ubuntu-menuentries)))
\f
(define %localmachine-metal-initrd base-initrd)
\f
(define %localmachine-simple-groups (list (user-group (name %localmachine-account-group-name)
(id %localmachine-account-group-gid))))
(define %localmachine-groups (append %localmachine-simple-groups
%base-groups))
\f
(define %localmachine-simple-users (list (user-account (uid %localmachine-account-uid)
(name %localmachine-account-user-name)
(comment %localmachine-account-comment)
(group %localmachine-account-group-name)
(supplementary-groups %localmachine-account-supplementry-groups)
(create-home-directory? %localmachine-account-create-home-directory))))
(define %localmachine-users (append %localmachine-simple-users
%base-user-accounts))
\f
;; Vixie cron schedular
(define updatedb-job
;; Run 'updatedb' at 3AM every day. Here we write the
;; job's action as a Scheme procedure.
#~(job '(next-hour '(3))
(lambda ()
(execl (string-append #$findutils "/bin/updatedb")
;; "updatedb"
"--prunepaths=`/tmp /var/tmp /gnu/store /run'"))))
(define garbage-collector-job
;; Collect garbage 5 minutes after midnight every day.
;; The job's action is a shell command.
#~(job "5 0 * * *" ;Vixie cron syntax
"guix gc -F 1G"))
(define idutils-job
;; Update the index database as user "charlie" at 12:15PM
;; and 19:15PM. This runs from the user's home directory.
#~(job '(next-minute-from (next-hour '(12 19)) '(15))
(string-append #$idutils "/bin/mkid src")
#:user "s"))
\f
(define %localmachine-publish-services (list (service guix-publish-service-type
(guix-publish-configuration (advertise? #t)
(compression '(("lzip" 7) ("gzip" 9)))
(cache "/var/cache/guix/publish")
(cache-bypass-threshold (* 100 1024 1024))
(ttl (* 3 24 60 60))))))
\f
;; https ://guix.gnu.org/manual/en/html_node/Scheduled-Job-Execution.html
(define %localmachine-mcron-services (list (service mcron-service-type
(mcron-configuration (jobs (list garbage-collector-job
;; idutils-job
updatedb-job))))))
\f
(define %localmachine-bitlbee-services (list (service bitlbee-service-type)))
\f
(define %localmachine-mail-aliases-services (list (service mail-aliases-service-type
'(("postmaster" "bob")
("bob" "bob@example.com" "bob@example2.com")))))
\f
(define %localmachine-dovecot-services (list (dovecot-service #:config
(dovecot-configuration
(mail-location "maildir:~/.maildir")
(listen '("127.0.0.1"))))))
(define %localmachine-exim-services (list (service exim-service-type
(exim-configuration
(config-file #f)))))
\f
(define %localmachine-dnsmasq-services (list (service dnsmasq-service-type
(dnsmasq-configuration (no-resolv? #t)
;; (resolv-file)
;; (no-resolv? #f)
;; (servers '("82.196.9.45"
;; "51.255.48.78"
;; "51.15.98.97"))
(local-service? #t)))))
\f
(define %localmachine-network-manager-services (list (service network-manager-service-type
(network-manager-configuration (dns %localmachine-network-manager-dns)))))
(define %localmachine-avahi-services (list (service avahi-service-type)))
(define %localmachine-gpm-services (list (service gpm-service-type)))
\f
(define %localmachine-audio-services (list (service mpd-service-type
(mpd-configuration
(user %localmachine-account-user-name)
(music-dir "~/Music")))))
\f
;; https://github.com/alezost/guix-config/blob/master/system-config/os-main.scm
(define %localmachine-mingetty-services (list (service mingetty-service-type
(mingetty-configuration (tty "tty1")))
(service mingetty-service-type
(mingetty-configuration (tty "tty2")))
(service mingetty-service-type
(mingetty-configuration (tty "tty3")))
(service mingetty-service-type
(mingetty-configuration (tty "tty4")))
(service mingetty-service-type
(mingetty-configuration (tty "tty5")))
(service mingetty-service-type
(mingetty-configuration (tty "tty6")))))
\f
(define %localmachine-cups-services (list (service cups-service-type
(cups-configuration (web-interface? #t)
(default-paper-size "A4")
(extensions (list cups-filters
hplip-minimal))))))
\f
(define %localmachine-polkit-services (list))
\f
;; services modifications
\f
(define %localmachine-desktop-nm-services (modify-services %localmachine-desktop-nm-services
(gdm-service-type config =>
(gdm-configuration (inherit config)
(xorg-configuration
(xorg-configuration
(keyboard-layout %localmachine-keyboard-layout)))
(allow-empty-passwords? %localmachine-gdm-allow-empty-password)
(auto-login? %localmachine-gdm-auto-login)
(default-user %localmachine-account-user-name)))))
\f
;; services add
\f
(define %localmachine-desktop-services %localmachine-desktop-nm-services)
\f
(define %localmachine-network-services (list (service openssh-service-type)
(service tor-service-type)))
(define %localmachine-heavy-wm-services (list (service gnome-desktop-service-type)
(service xfce-desktop-service-type)
(service mate-desktop-service-type)
(service enlightenment-desktop-service-type)))
(define %localmachine-many-services (append %localmachine-network-services
%localmachine-heavy-wm-services))
(define %localmachine-few-services (append (list (service gnome-desktop-service-type))
%localmachine-network-services))
\f
(define %localmachine-simple-services %localmachine-few-services)
(define %localmachine-simple-and-desktop-services (append %localmachine-simple-services
%localmachine-mail-aliases-services
%localmachine-dovecot-services
%localmachine-gpm-services
%localmachine-audio-services
%localmachine-publish-services
%localmachine-mcron-services
%localmachine-cups-services
%localmachine-polkit-services
%localmachine-bitlbee-services
%localmachine-desktop-services))
\f
(define %localmachine-base-services %base-services)
\f
(define %localmachine-final-services %localmachine-simple-and-desktop-services)
(define %localmachine-services %localmachine-final-services)
\f
(define %localmachine-firmware %base-firmware)
\f
(define %localmachine-locale "en_US.utf8")
(define %localmachine-locate-names (list "en_US"
"hi_IN"
"ur_PK"
"fa_IR"
"ar_SA"))
(define %localmachine-all-locale-definitions (map (lambda (locale)
(locale-definition (source locale)
(name (string-append locale "." "utf8"))))
%localmachine-locate-names))
(define %localmachine-locale-definitions (append %localmachine-all-locale-definitions
%default-locale-definitions))
\f
(define %localmachine-timezone "Asia/Kolkata")
\f
(define %localmachine-bootloader %localmachine-efi-bootloader)
(define %localmachine-initrd %localmachine-metal-initrd)
\f
;; (define %localmachine-setuid-programs %setuid-programs)
(define %localmachine-setuid-programs (cons* #~(string-append #$ecryptfs-utils "/sbin/mount.ecryptfs_private")
%setuid-programs))
\f
(define %localmachine-kernel linux-libre)
\f
(operating-system
(kernel %localmachine-kernel)
(kernel-arguments '(" modprobe.blacklist=usbmouse,usbkbd --verbose nosplash debug"))
(firmware %localmachine-firmware)
(initrd %localmachine-initrd)
(locale %localmachine-locale)
(locale-definitions %localmachine-locale-definitions)
(timezone %localmachine-timezone)
(keyboard-layout %localmachine-keyboard-layout)
(host-name %localmachine-host-name)
(setuid-programs %localmachine-setuid-programs)
(mapped-devices %localmachine-mapped-devices)
(users %localmachine-users)
(groups %localmachine-groups)
(file-systems %localmachine-file-systems)
(swap-devices %localmachine-swap-devices)
(bootloader %localmachine-bootloader)
(packages %localmachine-packages)
(services %localmachine-services)
;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))
\f
next prev parent reply other threads:[~2021-02-24 17:52 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-16 10:11 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 Shyam Saran
2021-02-22 9:19 ` Ludovic Courtès
2021-02-23 15:23 ` Shyam Saran [this message]
2021-02-25 13:19 ` Ludovic Courtès
2021-02-26 8:08 ` Shyam Saran
2021-03-01 9:26 ` Ludovic Courtès
2021-03-02 10:34 ` Shyam Saran
2021-03-02 10:42 ` Shyam Saran
2021-03-02 16:12 ` Shyam Saran
2021-03-04 7:22 ` Shyam Saran
2021-03-08 13:28 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CABVJY8rP9fCPQHG23o67Lx7uXgygGT7odejWtFY4dAQwGjbR4g@mail.gmail.com \
--to=syamsaran12345@gmail.com \
--cc=46555@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).