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