Subject: bug#35380: closed (Re: bug#35380: disk-image fails to install efi grub)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 25 Apr 2019 08:45:03 +0000

Your bug report

#35380: disk-image fails to install efi grub

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
35380: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35380
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#35380: disk-image fails to install efi grub
From: Ludovic Courtès <[email-masked]>
To: rendaw <[email-masked]>
Cc: [email-masked]
Date: Thu, 25 Apr 2019 10:44:29 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi rendaw,

rendaw <[email-masked]> skribis:

> Bug 2: So is it appears disk-image won't build with an EFI bootloader.
> I'm guessing that qemu is run with a bios boot image here, which is why
> grub's using i386-pc.

Exactly: currently QEMU is run with a plain old BIOS, and not with the
UEFI firmware, so what you want is not implemented yet (see the comment
in gnu/system/vm.scm:799).

I’m closing this bug, but you can open a wishlist item about it if you
want!

Thanks,
Ludo’.

Subject: disk-image fails to install efi grub
From: rendaw <[email-masked]>
To: [email-masked]
Date: Tue, 23 Apr 2019 01:06:15 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: guix
Version: 0.16.0

This might be 2 bugs.

I ran `guix pull` a few hours ago.

I have a minimal system configuration:
```
(use-modules (gnu))
(operating-system
    (host-name "min1")
    (timezone "UTC")
    (locale "en_US.utf8")
    (bootloader (bootloader-configuration
        (bootloader grub-bootloader)
    ))
    (file-systems (cons
        (file-system
            (device (file-system-label "abcdefghijk"))
            (mount-point "/")
            (type "ext4"))
        %base-file-systems))
)
```

This boots fine with:
```
qemu-system-x86_64 -m 1024 testimage
```
(after copying to testimage and doing chmod u+w)

Changing it to use grub-efi-bootloader results in this error during build:
```
installing bootloader...
/gnu/store/6zkimxsfyn0gdc7p4ikxlrhilpnpblsi-grub-efi-2.02/sbin/grub-install:
error:
/gnu/store/6zkimxsfyn0gdc7p4ikxlrhilpnpblsi-grub-efi-2.02/lib/grub/i386-pc/modinfo.sh
doesn't exist. Please spe.
Backtrace:
           2 (primitive-load "/gnu/store/mkbilylx3l6c2y9pdckdiibcpwb?")
In ./gnu/build/vm.scm:
    534:6  1 (initialize-hard-disk "/dev/vda" #:bootloader-package _ ?)
In unknown file:
           0 (scm-error misc-error #f "~A" ("failed to install GRU?") ?)

ERROR: In procedure scm-error:
failed to install GRUB (EFI)
boot program
'/gnu/store/0m2ap3d4c9gl7chmsrh7ci7i5gy4bbl0-linux-vm-loader'
terminated, rebooting
[  184.005459] Unregister pv shared memory for cpu 0
[  184.006818] reboot: Restarting system
[  184.007498] reboot: machine restart
successfully built
/gnu/store/57smyxccd3965dzirpcjfdkljbv9mrpy-disk-image.drv
/gnu/store/f90acaac9wvg61i6j3mgjfjvyd5p1yzg-disk-image
```

Bug 1: Even though there's a fairly serious error (bootloader failed to
install) a broken image is produced and it exits with a success status code.

Running with the same command above, qemu halts saying the drive isn't
bootable, trying floppy disks, etc.

Bug 2: So is it appears disk-image won't build with an EFI bootloader.
I'm guessing that qemu is run with a bios boot image here, which is why
grub's using i386-pc.

I'm building the image for a UEFI machine and I don't want to disable
UEFI so this is a blocker.