guix system: error: failed to install bootloader

  • Done
  • quality assurance status badge
Details
3 participants
  • Brett Gilio
  • Jack Hill
  • Ludovic Courtès
Owner
unassigned
Submitted by
Jack Hill
Severity
important
J
J
Jack Hill wrote on 17 Mar 2019 05:08
guix system: error: failed to install bootloader
(address . bug-guix@gnu.org)
alpine.DEB.2.20.1903162322360.16784@marsh.hcoop.net
Hi Guix,

Today after a guix pull to commit
e3545ffcf95bffbbd967efd852715f4f0a9be290, guix system reconfigure fails to
install grub (bios grub on x86_64) with

guix system: error: failed to install bootloader /gnu/store/45myfaqas69fnp3mfbqlsf9lafm30cl0-bootloader-installer

/gnu/store/45myfaqas69fnp3mfbqlsf9lafm30cl0-bootloader-installer is

(eval-when (expand load eval) (set! %load-path (cons
"/gnu/store/wa7bn283y9pg2h5g75j1fmqbp1m5js7w-module-import" (append (map
(lambda (extension) (string-append extension "/share/guile/site/"
(effective-version))) (quote ())) %load-path))) (set! %load-compiled-path
(cons "/gnu/store/w5a1xk656i0sw15mqj7bz8zp130c8m27-module-import-compiled"
(append (map (lambda (extension) (string-append extension "/lib/guile/"
(effective-version) "/site-ccache")) (quote ()))
%load-compiled-path))))(begin (use-modules (gnu build bootloader) (guix
build utils) (ice-9 binary-ports) (srfi srfi-34) (srfi srfi-35)) (guard (c
((message-condition? c) (format (current-error-port) "error: ~a~%"
(condition-message c)) (exit 1))) ((lambda (bootloader device mount-point)
(let ((grub (string-append bootloader "/sbin/grub-install")) (install-dir
(string-append mount-point "/boot"))) (setenv "GRUB_ENABLE_CRYPTODISK"
"y") (invoke/quiet grub "--no-floppy" "--target=i386-pc"
"--boot-directory" install-dir device)))
"/gnu/store/shbswxl2g7n6fvi6gq45bvan4saygkv2-grub-2.02" "/dev/sda" "/")
(format #t "bootloader successfully installed on '~a'~%" device)))

Unfortunately, I don't remember the last commit for which I successfully
reconfigured and installed gurb. My operating system definition is below.

Best,
Jack

;; This is an operating system configuration template
;; for a "desktop" setup with GNOME and Xfce where the
;; root partition is encrypted with LUKS.

(use-modules (gnu) (gnu system nss) (gnu services xorg))
(use-service-modules desktop)
(use-package-modules certs gnome scanner)

(operating-system
(host-name "alperton")
(timezone "America/New_York")
(locale "en_US.utf8")

(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(target "/dev/sda")))

;; Specify a mapped device for the encrypted root partition.
;; The UUID is that returned by 'cryptsetup luksUUID'.
(mapped-devices
(list (mapped-device
(source (uuid "f7776767-70c9-44e3-9973-c1334d301348"))
(target "alperton_root")
(type luks-device-mapping))))

(file-systems (cons*
;; (file-system
;; (device (file-system-label "boot"))
;; (mount-point "/boot")
;; (type "ext4"))
(file-system
(device (file-system-label "alperton_root"))
(mount-point "/")
(type "ext4")
(dependencies mapped-devices))
%base-file-systems))

(users (cons (user-account
(name "jackhill")
(comment "Jack Hill")
(group "users")
(supplementary-groups '("wheel" "netdev"
"audio" "video"))
(home-directory "/home/jackhill"))
%base-user-accounts))

;; This is where we specify system-wide packages.
(packages (cons* nss-certs ;for HTTPS access
gvfs ;for user mounts
network-manager-openvpn
%base-packages))

;; Add GNOME and/or Xfce---we can choose at the log-in
;; screen with F1. Use the "desktop" services, which
;; include the X11 log-in service, networking with
;; NetworkManager, and more.
(services (cons* (gnome-desktop-service)
(service gdm-service-type)
(simple-service 'sane-udev-rules udev-service-type (list sane-backends))
(filter (lambda (x)
(not (eq? (service-kind x) slim-service-type))) %desktop-services)))

;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))
B
B
Brett Gilio wrote on 17 Mar 2019 05:38
Re: bug#34890: guix system: error: failed to install bootloader
(name . Jack Hill)(address . jackhill@jackhill.us)(address . 34890@debbugs.gnu.org)
87tvg26rp8.fsf@posteo.net
Jack Hill writes:

Toggle quote (31 lines)
> Hi Guix,
>
> Today after a guix pull to commit
> e3545ffcf95bffbbd967efd852715f4f0a9be290, guix system reconfigure
> fails to install grub (bios grub on x86_64) with
>
> guix system: error: failed to install bootloader /gnu/store/45myfaqas69fnp3mfbqlsf9lafm30cl0-bootloader-installer
>
> /gnu/store/45myfaqas69fnp3mfbqlsf9lafm30cl0-bootloader-installer is
>
> (eval-when (expand load eval) (set! %load-path (cons
> "/gnu/store/wa7bn283y9pg2h5g75j1fmqbp1m5js7w-module-import" (append
> (map (lambda (extension) (string-append extension "/share/guile/site/"
> (effective-version))) (quote ())) %load-path))) (set!
> %load-compiled-path (cons
> "/gnu/store/w5a1xk656i0sw15mqj7bz8zp130c8m27-module-import-compiled"
> (append (map (lambda (extension) (string-append extension
> "/lib/guile/" (effective-version) "/site-ccache")) (quote ()))
> %load-compiled-path))))(begin (use-modules (gnu build bootloader)
> (guix build utils) (ice-9 binary-ports) (srfi srfi-34) (srfi srfi-35))
> (guard (c ((message-condition? c) (format (current-error-port) "error:
> ~a~%" (condition-message c)) (exit 1))) ((lambda (bootloader device
> mount-point) (let ((grub (string-append bootloader
> "/sbin/grub-install")) (install-dir (string-append mount-point
> "/boot"))) (setenv "GRUB_ENABLE_CRYPTODISK" "y") (invoke/quiet grub
> "--no-floppy" "--target=i386-pc" "--boot-directory" install-dir
> device))) "/gnu/store/shbswxl2g7n6fvi6gq45bvan4saygkv2-grub-2.02"
> "/dev/sda" "/") (format #t "bootloader successfully installed on
> '~a'~%" device)))
>

I can replicate this bug, however it is still successfully installing a
new system configuration. The error printout seems erroneous (pun
intended).

I am sure there is a regression somewhere, but it does not seem to
adversely effect the method in question.
J
J
Jack Hill wrote on 17 Mar 2019 06:01
(name . Brett Gilio)(address . brettg@posteo.net)(address . 34890@debbugs.gnu.org)
alpine.DEB.2.20.1903170057370.16784@marsh.hcoop.net
On Sat, 16 Mar 2019, Brett Gilio wrote:

Toggle quote (4 lines)
> I can replicate this bug, however it is still successfully installing a
> new system configuration. The error printout seems erroneous (pun
> intended).

Indeed, I also do get a new system configuration reflecting my changes.
However, I'm not sure if the output is just erroneous of if grub is really
failing to be installed. By that I mean that the grub-install call is
failing, resulting in this output. Since grub has been previously
installed to my disk, most of the time I don't need to install the
bootloader binary again, so this failure doesn't cause problems.

Toggle quote (3 lines)
> I am sure there is a regression somewhere, but it does not seem to
> adversely effect the method in question.

I wonder if Ludovic's recent work [0][1] on handeling the bootloader
messages could be the cause.

[0] 22f95e028f038cee342f455dfc55bd32b804907c
[1] f0cc5e7e1e4c03af29c5d4855dc5962502c49147
L
L
Ludovic Courtès wrote on 17 Mar 2019 15:27
(name . Jack Hill)(address . jackhill@jackhill.us)(address . 34890@debbugs.gnu.org)
8736nlzic1.fsf@gnu.org
Hi,

Jack Hill <jackhill@jackhill.us> skribis:

Toggle quote (6 lines)
> Today after a guix pull to commit
> e3545ffcf95bffbbd967efd852715f4f0a9be290, guix system reconfigure
> fails to install grub (bios grub on x86_64) with
>
> guix system: error: failed to install bootloader /gnu/store/45myfaqas69fnp3mfbqlsf9lafm30cl0-bootloader-installer

What was printed before that? Any hints?

It could be related to the changes I recently made, indeed.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 17 Mar 2019 15:28
control message for bug #34890
(address . control@debbugs.gnu.org)
871s35zibr.fsf@gnu.org
severity 34890 important
L
L
Ludovic Courtès wrote on 17 Mar 2019 16:31
Re: bug#34890: guix system: error: failed to install bootloader
(name . Jack Hill)(address . jackhill@jackhill.us)(address . 34890-done@debbugs.gnu.org)
87tvg1y0ts.fsf@gnu.org
Hello,

Jack Hill <jackhill@jackhill.us> skribis:

Toggle quote (6 lines)
> Today after a guix pull to commit
> e3545ffcf95bffbbd967efd852715f4f0a9be290, guix system reconfigure
> fails to install grub (bios grub on x86_64) with
>
> guix system: error: failed to install bootloader /gnu/store/45myfaqas69fnp3mfbqlsf9lafm30cl0-bootloader-installer

Fixed in 8ffab257ddb6c5df1ac43b9baeb5f0373bffb482.

As you found out, ‘grub-install’ was actually successful but there was
an unbound variable error while displaying the success message…

Thanks,
Ludo’.
Closed
?