guix-epistemia

Personal Guix channel
Log | Files | Refs

bootloader.scm (1538B)


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