aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/bootloader/extlinux.scm8
-rw-r--r--gnu/bootloader/grub.scm16
-rw-r--r--guix/scripts/system.scm13
3 files changed, 22 insertions, 15 deletions
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?