all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Problems adding multiple file systems (e.g., /home partition)
@ 2016-11-28 18:23 Daniel Drake
  2016-11-29 12:57 ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Drake @ 2016-11-28 18:23 UTC (permalink / raw)
  To: help-guix

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Problems adding multiple file systems (e.g., /home partition)
  2016-11-28 18:23 Problems adding multiple file systems (e.g., /home partition) Daniel Drake
@ 2016-11-29 12:57 ` Ludovic Courtès
  2016-11-29 15:08   ` Daniel Drake
  2016-11-29 15:10   ` Daniel Drake
  0 siblings, 2 replies; 4+ messages in thread
From: Ludovic Courtès @ 2016-11-29 12:57 UTC (permalink / raw)
  To: Daniel Drake; +Cc: help-guix

Hello!

Daniel Drake <silophophe@gmail.com> skribis:

> 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)) )

This should be:

  (dependencies (list vol-root))

> I found a related issue in one of the IRC logs that modified the
> dependencies argument like this:
>   (dependencies (list vol-root))

… which you already found.  :-)

> 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

Right.

In fact, the root file system is always mounted before anything else, so
the ‘dependencies’ field here is unneeded.

(That case could be handled more gracefully though.)

So in short, all you need is to write things like this:

  (operating-system
    ;; …
    (file-systems (list (file-system (device "vol-root") …)
                        (file-system (device "vol-home") …))))

without any ‘dependencies’ field.

HTH!

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Problems adding multiple file systems (e.g., /home partition)
  2016-11-29 12:57 ` Ludovic Courtès
@ 2016-11-29 15:08   ` Daniel Drake
  2016-11-29 15:10   ` Daniel Drake
  1 sibling, 0 replies; 4+ messages in thread
From: Daniel Drake @ 2016-11-29 15:08 UTC (permalink / raw)
  To: Ludovic Courtès

Hi Ludo',

Thanks!  Your suggestion is what I had initially tried, and it would not 
boot.  But now it works: I can boot without the USB drive and reach the 
login prompt.  I must have had something else messed up.

In any event, thank you very much for your help!
- Daniel

On 11/29/2016 07:57 AM, Ludovic Courtès wrote:
> Hello!
>
> Daniel Drake <silophophe@gmail.com> skribis:
>
>> 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)) )
>
> This should be:
>
>   (dependencies (list vol-root))
>
>> I found a related issue in one of the IRC logs that modified the
>> dependencies argument like this:
>>   (dependencies (list vol-root))
>
> … which you already found.  :-)
>
>> 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
>
> Right.
>
> In fact, the root file system is always mounted before anything else, so
> the ‘dependencies’ field here is unneeded.
>
> (That case could be handled more gracefully though.)
>
> So in short, all you need is to write things like this:
>
>   (operating-system
>     ;; …
>     (file-systems (list (file-system (device "vol-root") …)
>                         (file-system (device "vol-home") …))))
>
> without any ‘dependencies’ field.
>
> HTH!
>
> Ludo’.
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Problems adding multiple file systems (e.g., /home partition)
  2016-11-29 12:57 ` Ludovic Courtès
  2016-11-29 15:08   ` Daniel Drake
@ 2016-11-29 15:10   ` Daniel Drake
  1 sibling, 0 replies; 4+ messages in thread
From: Daniel Drake @ 2016-11-29 15:10 UTC (permalink / raw)
  To: help-guix

Hi Ludo',

Thanks!  Your suggestion is what I had initially tried, and it would not 
boot.  But now it works: I can boot without the USB drive and reach the 
login prompt.  I must have had something else messed up.

In any event, thank you very much for your help!
- Daniel

On 11/29/2016 07:57 AM, Ludovic Courtès wrote:
> Hello!
>
> Daniel Drake <silophophe@gmail.com> skribis:
>
>> 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)) )
>
> This should be:
>
>   (dependencies (list vol-root))
>
>> I found a related issue in one of the IRC logs that modified the
>> dependencies argument like this:
>>   (dependencies (list vol-root))
>
> … which you already found.  :-)
>
>> 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
>
> Right.
>
> In fact, the root file system is always mounted before anything else, so
> the ‘dependencies’ field here is unneeded.
>
> (That case could be handled more gracefully though.)
>
> So in short, all you need is to write things like this:
>
>   (operating-system
>     ;; …
>     (file-systems (list (file-system (device "vol-root") …)
>                         (file-system (device "vol-home") …))))
>
> without any ‘dependencies’ field.
>
> HTH!
>
> Ludo’.
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-11-29 15:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-28 18:23 Problems adding multiple file systems (e.g., /home partition) Daniel Drake
2016-11-29 12:57 ` Ludovic Courtès
2016-11-29 15:08   ` Daniel Drake
2016-11-29 15:10   ` Daniel Drake

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.