summaryrefslogtreecommitdiff
path: root/epistemia/bootloader.scm
blob: 90137a319e625de72783a0bb7c55e71f7e2ee2be (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
;;; 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)
  #:export (grub-zfs))

(define 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/")))))))