bootloader: grub: Allow booting from a Btrfs subvolume.
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>
Sun, 14 Jul 2019 11:50:23 +0000 (20:50 +0900)
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>
Wed, 20 May 2020 12:30:35 +0000 (08:30 -0400)
commitb460ba7992a0b4af2ddb5927dcf062784539ef7b
tree4d77d01574da9a7aedf31dc3f16e94d82fa31adb
parentfa35fb58c84d1c1741e4e63c0b37074e35ed2a61
bootloader: grub: Allow booting from a Btrfs subvolume.

* gnu/bootloader/grub.scm (strip-mount-point): Remove procedure.
(normalize-file): Add procedure.
(grub-configuration-file): New BTRFS-SUBVOLUME-FILE-NAME parameter.  When
defined, prepend its value to the kernel and initrd file names, using the
NORMALIZE-FILE procedure.  Adjust the call to EYE-CANDY to pass the
BTRFS-SUBVOLUME-FILE-NAME argument.  Normalize the KEYMAP file as well.
(eye-candy): Add a BTRFS-SUBVOLUME-FILE-NAME parameter, and use it, along with
the NORMALIZE-FILE procedure, to normalize the FONT-FILE and IMAGE nested
variables.  Adjust doc.
* gnu/bootloader/depthcharge.scm (depthcharge-configuration-file): Adapt.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise.
* gnu/system/file-systems.scm (btrfs-subvolume?)
(btrfs-store-subvolume-file-name): New procedures.
* gnu/system.scm (operating-system-bootcfg): Specify the Btrfs
subvolume file name the store resides on to the
`operating-system-bootcfg' procedure, using the new
BTRFS-SUBVOLUME-FILE-NAME argument.
* doc/guix.texi (File Systems): Add a Btrfs subsection to document the use of
subvolumes.
* gnu/tests/install.scm (%btrfs-root-on-subvolume-os)
(%btrfs-root-on-subvolume-os-source)
(%btrfs-root-on-subvolume-installation-script)
(%test-btrfs-root-on-subvolume-os): New variables.
doc/guix.texi
gnu/bootloader/depthcharge.scm
gnu/bootloader/extlinux.scm
gnu/bootloader/grub.scm
gnu/system.scm
gnu/system/file-systems.scm
gnu/tests/install.scm
tests/file-systems.scm