diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index 2bb711eed1..40108584a8 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -91,11 +91,9 @@ TIMEOUT ~a~%" (for-each (lambda (file) (install-file file install-dir)) (find-files syslinux-dir "\\.c32$")) - (unless - (and (zero? (system* extlinux "--install" install-dir)) - (write-file-on-device - (string-append syslinux-dir "/" #$mbr) 440 device 0)) - (error "failed to install SYSLINUX"))))) + (invoke/quiet extlinux "--install" install-dir) + (write-file-on-device (string-append syslinux-dir "/" #$mbr) + 440 device 0)))) (define install-extlinux-mbr (install-extlinux "mbr.bin")) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 51d5787364..14aede72c5 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -369,10 +369,11 @@ submenu \"GNU system, old configurations...\" {~%") ;; root partition. (setenv "GRUB_ENABLE_CRYPTODISK" "y") - (unless (zero? (system* grub "--no-floppy" "--target=i386-pc" - "--boot-directory" install-dir - device)) - (error "failed to install GRUB (BIOS)"))))) + ;; Hide potentially confusing messages from the user, such as + ;; "Installing for i386-pc platform." + (invoke/quiet grub "--no-floppy" "--target=i386-pc" + "--boot-directory" install-dir + device)))) (define install-grub-efi #~(lambda (bootloader efi-dir mount-point) @@ -388,10 +389,9 @@ submenu \"GNU system, old configurations...\" {~%") ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or ;; root partition. (setenv "GRUB_ENABLE_CRYPTODISK" "y") - (unless (zero? (system* grub-install "--boot-directory" install-dir - "--bootloader-id=Guix" - "--efi-directory" target-esp)) - (error "failed to install GRUB (EFI)"))))) + (invoke/quiet grub-install "--boot-directory" install-dir + "--bootloader-id=Guix" + "--efi-directory" target-esp)))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index d67b9f8185..b4bf66819f 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -808,8 +808,17 @@ and TARGET arguments." #~(begin (use-modules (gnu build bootloader) (guix build utils) - (ice-9 binary-ports)) - (#$installer #$bootloader #$device #$target))))) + (ice-9 binary-ports) + (srfi srfi-34) + (srfi srfi-35)) + + (guard (c ((message-condition? c) ;XXX: i18n + (format (current-error-port) "error: ~a~%" + (condition-message c)) + (exit 1))) + (#$installer #$bootloader #$device #$target) + (format #t "bootloader successfully installed on '~a'~%" + device)))))) (define* (perform-action action os #:key skip-safety-checks?