blob: 413b0d78280eb1167bcc0e1d1f74eb726581a63c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (epistemia bootloader)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu bootloader)
#:use-module (gnu bootloader grub))
(define-public grub-zfs
(bootloader
(inherit grub-efi-bootloader)
(name 'grub-zfs)
(installer
#~(lambda (bootloader targets mount-point)
(use-modules (guix build utils))
(let ((standard-installer #$(bootloader-installer grub-efi-bootloader)))
(standard-installer bootloader targets mount-point))
(let ((grub-cfg (string-append mount-point "/boot/grub/grub.cfg")))
(chmod grub-cfg #o644)
(substitute* grub-cfg
(("search --label --set [^ ]+")
"set root=(hd0,gpt2)")
((" /store/")
" /gnu/@/store/")))))))
;; TODO combine into previous with an argument?
(define-public grub-zfs-bios
(bootloader
(inherit grub-bootloader)
(name 'grub-zfs)
(installer
#~(lambda (bootloader targets mount-point)
(use-modules (guix build utils))
(let ((standard-installer #$(bootloader-installer grub-bootloader)))
(standard-installer bootloader targets mount-point))
(let ((grub-cfg (string-append mount-point "/boot/grub/grub.cfg")))
(chmod grub-cfg #o644)
(substitute* grub-cfg
(("search --label --set [^ ]+")
"set root=(hd0,gpt2)")
((" /store/")
" /gnu/@/store/")))))))
|