aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/mapped-devices.scm
Commit message (Collapse)AuthorAge
* system: Introduce a disjoint UUID type.Ludovic Courtès2017-09-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conceptually a UUID is just a bytevector. However, there's software out there such as GRUB that relies on the string representation of different UUID types (e.g., the string representation of DCE UUIDs differs from that of ISO-9660 UUIDs, even if they are actually bytevectors of the same length). This new <uuid> record type allows us to preserve information about the type of UUID so we can eventually convert it to a string using the right representation. * gnu/system/uuid.scm (<uuid>): New record type. (bytevector->uuid): New procedure. (uuid): Return calls to 'make-uuid'. (uuid->string): Rewrite using 'match-lambda*' to accept a single 'uuid?' argument. * gnu/bootloader/grub.scm (grub-root-search): Check for 'uuid?' instead of 'bytevector?'. * gnu/system.scm (bootable-kernel-arguments): Check whether ROOT-DEVICE is 'uuid?'. (read-boot-parameters): Use 'bytevector->uuid' when the store device is a bytevector. (read-boot-parameters-file): Check for 'uuid?' instead of 'bytevector?'. (device->sexp): New procedure. (operating-system-boot-parameters-file): Use it for 'root-device' and 'store'. (operating-system-bootcfg): Remove conditional in definition of 'root-device'. * gnu/system/file-systems.scm (file-system->spec): Check for 'uuid?' on DEVICE and take its bytevector. * gnu/system/mapped-devices.scm (open-luks-device): Likewise. * gnu/system/vm.scm (iso9660-image): Call 'uuid-bytevector' for the #:volume-uuid argument.
* mapped-devices: Cope with delayed appearance of LUKS source.Mark H Weaver2017-06-07
| | | | | | | | Fixes <https://bugs.gnu.org/27242>. * gnu/system/mapped-devices.scm (open-luks-device): If 'find-partition-by-luks-uuid' fails, try again once per second, up to ten times.
* mapped-devices: 'source' can be a list of strings.Ludovic Courtès2017-01-24
| | | | | | | Reported by myglc2 <myglc2@gmail.com>. * gnu/system/mapped-devices.scm (<mapped-device>)[source]: Update comment to note that this can be a list of strings.
* mapped-devices: Use 'cryptsetup-static' in 'luks-device-mapping'.Ludovic Courtès2016-11-23
| | | | | | * gnu/system/mapped-devices.scm (open-luks-device): Use CRYPTSETUP-STATIC instead of CRYPTSETUP. Use 'file-append'. (close-luks-device): Likewise.
* mapped-devices: Use 'mdadm-static' in 'raid-device-mapping'.Ludovic Courtès2016-10-27
| | | | | * gnu/system/mapped-devices.scm (open-raid-device, close-raid-device): Use MDADM-STATIC instead of MDADM. Use 'file-append'.
* mapped-devices: Properly open RAID devices.Ludovic Courtès2016-10-04
| | | | | | | | This fixes a type error introduced in 7f8ad82bf23b032ad6bd85bb1daa87cc83de509c, given that SOURCES is a list. * gnu/system/mapped-devices.scm (open-raid-device): Add 'apply' invocation.
* system: Use 'source-module-closure' where needed.Ludovic Courtès2016-09-05
| | | | | | | | | | * gnu/system/vm.scm (%vm-module-closure): Remove. (expression->derivation-in-linux-vm): Use 'source-module-closure' instead of %VM-MODULE-CLOSURE. (qemu-image): Likewise. * gnu/system/linux-initrd.scm (expression->initrd): Likewise. (flat-linux-module-directory, base-initrd): Likewise. * gnu/system/mapped-devices.scm (open-luks-device): Likewise.
* mapped-devices: raid-device-mapping: Avoid non-top-level 'use-modules'.Ludovic Courtès2016-08-03
| | | | | | | | Fixes <http://bugs.gnu.org/24135>. Reported by myglc2 <myglc2@gmail.com>. * gnu/system/mapped-devices.scm (open-raid-device): Avoid non-top-level 'use-modules' form.
* mapped-devices: Bail out when RAID sources don't show up.Ludovic Courtès2016-08-02
| | | | | * gnu/system/mapped-devices.scm (open-raid-device): Bail out after 20 loop iterations.
* mapped-devices: Make RAID device opening message clearer.Ludovic Courtès2016-08-02
| | | | | | * gnu/system/mapped-devices.scm (open-raid-device): Rename 'source' to 'sources'. Make 'waiting' message more informative. (close-raid-device): Rename 'source' to 'sources'.
* mapped-devices: Do not always use (gnu build file-systems).Ludovic Courtès2016-08-02
| | | | | | | | | Fixes <http://bugs.gnu.org/24129>. Reported by myglc2 <myglc2@gmail.com>. * gnu/system/mapped-devices.scm (device-mapping-service-type): Remove 'modules' field from 'shepherd-service' form. (open-luks-device): Add 'use-modules' form.
* system: Add mapped devices for RAID.Andreas Enge2016-07-25
| | | | | | | | | * gnu/system/mapped-devices.scm (raid-device-mapping, open-raid-device, close-raid-device): New variables. * doc/guix.texi (Mapped Devices): Add documentation for RAID devices, reorganize documentation for LUKS devices. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* services: <shepherd-service> no longer has an 'imported-modules' field.Ludovic Courtès2016-07-12
| | | | | | | | | | | | | | | | | | * gnu/services/shepherd.scm (<shepherd-service>)[imported-modules]: Remove. (%default-imported-modules): Make private. (shepherd-service-file): Use 'with-imported-modules'. (shepherd-configuration-file): Remove 'modules' and the calls to 'imported-modules' and 'compiled-modules'. Use 'with-imported-modules' instead. * doc/guix.texi (Shepherd Services): Adjust accordingly. * gnu/services/base.scm (file-system-shepherd-service): Use 'with-imported-modules'. Remove 'imported-modules' field. * gnu/system/mapped-devices.scm (device-mapping-service-type): Remove 'imported-modules'. (open-luks-device): Use 'with-imported-modules'. * gnu/tests.scm (marionette-shepherd-service): Remove 'imported-modules' field and use 'with-imported-modules'.
* mapped-devices: LUKS partitions can be designated by their UUID.Ludovic Courtès2016-04-18
| | | | | | | | | | * gnu/system/mapped-devices.scm (device-mapping-service-type): Add 'modules' and 'imported-modules' fields to 'shepherd-service'. (open-luks-device): Use 'find-partition-by-luks-uuid' to lookup the partition when SOURCE is a bytevector. * gnu/system/linux-initrd.scm (base-initrd): Augment 'use-modules' form. * doc/guix.texi (Mapped Devices): Give example with a UUID.
* mapped-devices: 'mapped-device-service' takes a <mapped-device>.Ludovic Courtès2016-04-18
| | | | | | | * gnu/system/mapped-devices.scm (device-mapping-service): Take a <mapped-device> instead of 3 parameters. (device-mapping-service-type): Adjust accordingly. * gnu/system.scm (device-mapping-services): Adjust accordingly.
* services: Move 'device-mapping-service' to (gnu system mapped-devices).Ludovic Courtès2016-04-18
| | | | | | | * gnu/services/base.scm (device-mapping-service-type) (device-mapping-service): Move to... * gnu/system/mapped-devices.scm (device-mapping-service-type): (device-mapping-service): ... here. New variables.
* system: Move 'luks-device-mapping' to (gnu system mapped-devices).Ludovic Courtès2016-04-18
| | | | | | * gnu/system.scm (open-luks-device, close-luks-device) (luks-device-mapping): Move to... * gnu/system/mapped-devices.scm: ... here. New file.
* system: Add (gnu system mapped-devices).Ludovic Courtès2016-04-18
* gnu/system/file-systems.scm (<mapped-device>, <mapped-device-type>): Move to... * gnu/system/mapped-devices.scm: ... here. New file. * gnu/system.scm, gnu/services/base.scm, gnu/system/linux-initrd.scm: Use it. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu.scm (%public-modules): Add it.