guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] DISCUSSION: Jookia's Libreboot+LUKS+LVM FDE patch.


From: Ludovic Courtès
Subject: Re: [PATCH] DISCUSSION: Jookia's Libreboot+LUKS+LVM FDE patch.
Date: Fri, 11 Mar 2016 15:30:10 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Jookia <address@hidden> skribis:

> I'd really like to discuss how much I needed to break to get the 
> mapped-devices,
> file-systems and swap-devices to just 'work'. I even had to make a function to
> return a mapped-device type, and have swap-devices not do dependency tests 
> since
> I technically don't use a device I've defined.
>
> It'd be much much better if I could do something like this in my services:
>
>   (devices (list (file-system
>                    (uses '("/dev/matrix/root"))
>                    (creates '("/"))
>                    (device "/dev/matrix/root")
>                    (mount-point "/")
>                    (type "ext4"))
>                  (swap-device
>                    (uses '("/dev/mapper/matrix-swap"))
>                    (creates '()))
>                    (device "/dev/mapper/matrix-swap")
>                  (lvm-device
>                    (uses '("/dev/mapper/hdd" "/dev/sdb"))
>                    (creates '("/dev/matrix/"
>                               "/dev/mapper/matrix-swap"))
>                    (devices '("/dev/mapper/hdd" "/dev/sdb")))
>                  (luks-device
>                    (uses '("UUID=4dab5feb-d176-45de-b287-9b0a6e4c01cb"))
>                    (creates '("/dev/mapper/hdd"))
>                    (device "UUID=4dab5feb-d176-45de-b287-9b0a6e4c01cb")
>                    (name "hdd")
>                    (key-file "..."))))
>
> The issue is that it has a lot of duplicate information as I'm not sure
> uses/creates could always map to device/mount-point, like LUKS names. But this
> should satisfy most dependency issues automatically, I hope.

There are several issues being addressed here, IIUC:

  1. How to refer to block devices (in the Unix sense) using UUIDs,
     labels, or /dev file names in general, and not just for
     ‘file-system’.

  2. How to determine dependencies among all these things.

  3. How to handle mapped devices that lead to several /dev nodes, as is
     the case with LVM.

For #1, I would like to have a general ‘device’ type, so one could
write:

  (operating-system
    ;; …
    (file-systems (list (file-system
                          (source (device (title 'label)
                                          (name "my-root")))
                          (mount-point "/"))))
    (swap (list (device
                  (title 'uuid)
                  (name (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))))

For that to work, we ideally need code to recognize swap signatures,
similar to what we do for ext2 in (gnu build file-systems).

For #3, what about changing the ‘target’ field of ‘mapped-device’ such
that it can be a list of /dev file names?

For #2, I’m not sure we need to change anything, but let’s discuss it
later.  :-)

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]