Hi all.

I'm transitioning from arch to guixsd. I've built off of the bare-bones.scm example, but I'm having trouble adding a second file system (my home partition). Without a dependency argument to ensure that root gets mounted prior to home, the system fails to boot to a prompt.

I've noted the dependencies member of the file-system object: "This is a list of <file-system> objects representing file systems that must be mounted before (and unmounted after) this one."

In the preamble, I define the root file-system:

(define vol-root (file-system (device "vol-root") (title 'label) (mount-point "/") (type "ext4")))

Then I add the root file system to the file-systems list, along with the file-system for the home directory:

  (operating-system
    ...
    (file-systems
      (cons*
        vol-root
(file-system (device "vol-home") (title 'label) (mount-point "/home") (type "ext4") (dependencies '(vol-root)) )
        %base-file-systems))
    ...

When I try to instantiate (via guix system init /mnt/etc/config.scm /mnt), I get a multi-line error that states: gnu/services/base.scm:255:2: In procedure dependency->shepherd-service-name: gnu/services/base.scm:225:2: Throw to key 'match-error' with args `("match" "no matching pattern" vol-root)'.


I found a related issue in one of the IRC logs that modified the dependencies argument like this:
  (dependencies (list vol-root))
within the file-system object for the home directory.
In that instance, the error seems almost resolvable:
guix system: error: `file-system-/home' requires 'file-system-/', which is not provided by any service

In this case, it seems like the service that mounts root has not been created at the point that the home directory service needs it.

If anyone can shed some light into what actually needs to be placed in the dependencies list, that would be quite helpful. I'm new to guile, but I've done some hacking in emacs-lisp.

Thank you.
- Daniel

Reply via email to