Subject: Re: bug#67109: ‘efi32-esp’ image support pulls in host-side code

From: Mathieu Othacehe <[email-masked]>
Date: Tue, 14 Nov 2023 21:52:35 +0100

Hey,

Thanks for investigating this!

> Thus I’m proposing the fix below.  How can I test it though?  I get:
>
> $ ./pre-inst-env guix system image -t efi32-raw gnu/system/examples/bare-bones.tmpl
> guix system: error: EFI bootloader required with GPT partitioning

I added this check recently because we do not currently support
installing the `grub-bootloader` on a non-MBR disk.

The way to test your change is to switch the bare-bones system
bootloader to `grub-efi-bootloader`, this way:

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl
index dc6aff5273..e11d4bd5ee 100644
--- a/gnu/system/examples/bare-bones.tmpl
+++ b/gnu/system/examples/bare-bones.tmpl
@@ -18,8 +18,9 @@
   ;; target hard disk, and "my-root" is the label of the target
   ;; root file system.
   (bootloader (bootloader-configuration
-                (bootloader grub-bootloader)
-                (targets '("/dev/sdX"))))
+                (bootloader grub-efi-bootloader)
+                (targets '("/boot/efi"))))
--8<---------------cut here---------------end--------------->8---

We then have the following error:

--8<---------------cut here---------------start------------->8---
guix system: error: #<gexp (lambda (root . args) (apply initialize-efi32-partition root #:grub-targets #<gexp-input #<gexp (quote ("i386-efi" . "BOOTIA32.EFI")) gnu/system/image.scm:142:28 7fef96f85390>:out> args)) gnu/system/image.scm:146:8 7fef96f85360>: invalid G-expression input
--8<---------------cut here---------------end--------------->8---

Mathieu