diff options
Diffstat (limited to 'src/property/grub.lisp')
-rw-r--r-- | src/property/grub.lisp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/property/grub.lisp b/src/property/grub.lisp index 7ce6403..d8fd67e 100644 --- a/src/property/grub.lisp +++ b/src/property/grub.lisp @@ -19,9 +19,8 @@ (named-readtables:in-readtable :consfigurator) (defmethod install-bootloader-propspec - ((type (eql 'grub)) volume running-on-target - &rest args &key &allow-other-keys) - `(grub-installed ,volume ,running-on-target ,@args)) + ((type (eql 'grub)) volume &rest args &key &allow-other-keys) + `(grub-installed ,volume ,@args)) (defmethod install-bootloader-binaries-propspec ((type (eql 'grub)) volume &key (target "i386-pc") &allow-other-keys) @@ -35,20 +34,21 @@ ("arm64-efi" "grub-efi-arm64")))))) (defprop grub-installed :posix - (volume running-on-target &key (target "i386-pc") force-extra-removable) + (volume &key (target "i386-pc") force-extra-removable) "Use grub-install(8) to install grub to VOLUME." (:desc "GRUB installed") (:apply - (assert-remote-euid-root) - (mrun :inform "update-initramfs" "-u") - (let ((os-prober (and (not running-on-target) - (remote-exists-p "/etc/grub.d/30_os-prober")))) - ;; work around Debian bug #802717 - (when os-prober (file:has-mode "/etc/grub.d/30_os-prober" #o644)) - (mrun :inform "update-grub") - (when os-prober (file:has-mode "/etc/grub.d/30_os-prober" #o755))) - (mrun :inform "grub-install" (strcat "--target=" target) - (and (string-suffix-p target "-efi") (not running-on-target) - "--no-nvram") - (and force-extra-removable "--force-extra-removable") - (device-file volume)))) + (let ((running-on-target (container:contained-p :efi-nvram))) + (assert-remote-euid-root) + (mrun :inform "update-initramfs" "-u") + (let ((os-prober (and (not running-on-target) + (remote-exists-p "/etc/grub.d/30_os-prober")))) + ;; work around Debian bug #802717 + (when os-prober (file:has-mode "/etc/grub.d/30_os-prober" #o644)) + (mrun :inform "update-grub") + (when os-prober (file:has-mode "/etc/grub.d/30_os-prober" #o755))) + (mrun :inform "grub-install" (strcat "--target=" target) + (and (string-suffix-p target "-efi") running-on-target + "--no-nvram") + (and force-extra-removable "--force-extra-removable") + (device-file volume))))) |