Subject: Re: [bug#72457] [PATCH 00/15] Rewrite bootloader subsystem.

From: Sergey Trofimov <[email-masked]>
Date: Sun, 04 Aug 2024 10:53:00 +0200

Lilah Tascheter <[email-masked]> writes:

> The big thing is that this definately needs to be tested. We support lots of
> bootloaders for lots of hardware and I definately do not possess any of it.
> Please test this and send back the results for me to revise any bugs. I've made
> sure as many tests as I could run work, and that GRUB and uefi-uki-bootloader
> work both in regular systems and disk images.
>

I've built a new system generation, but it didn't apply properly,
showing this error:

--8<---------------cut here---------------start------------->8---
   196:43  4 (_ #(#(#(#(#(#(#(#(#(#(#(#(#<directory (gnu bootloader grub) 7fa9e0f99dc0>) install (#<<bootloader-target> type: vendir expected?: #f path: "EFI/Guix" offset: #<procedure offset (a)> device: #f file-system: #f label: #f uuid: #f> #<<bootloader-target> type: install expected?: #f path: "boot" offset: #<procedure offset (a)> device: "/dev/sda1" file-system: "vfat" label: "GNU-ESP" uuid: #vu8(77 160 163 107)> #<<bootloader-target> type: root expected?: #f path: "/" offset: #<procedure offset (a)> device: "/dev/sda2" file-system: "ext4" label: "Guix_image" uuid: #vu8(246 188 138 216 255 26 23 84 83 48 172 24 246 188 138 216)> #<<bootloader-target> type: esp expected?: #f path: "/boot" offset: #<procedure offset (a)> device: "/dev/sda1" file-system: "vfat" label: "GNU-ESP" uuid: #vu8(77 160 163 107)>) "root" #<gexp port /storage/devel/ext/guix/gnu/bootloader/grub.scm:221:54 7fa9e2a11e40>) #<variable 7fa9e4b2b3a0 value: #<procedure form (a b)>>) (…)) #) #) #) #) #) #) #) #))
In gnu/system/uuid.scm:
    89:19  3 (dce-uuid->string #vu8(77 160 163 107))
In unknown file:
           2 (bytevector-uint-ref #vu8(77 160 163 107) 4 big 2)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure bytevector-uint-ref: Value out of range: 4
--8<---------------cut here---------------end--------------->8---

Relevant config part: 
--8<---------------cut here---------------start------------->8---
  (bootloader
   (bootloader-configuration
    (bootloader grub-efi-bootloader)
    (targets (list (bootloader-target
                    (type 'esp)
                    (path "/boot"))))))

  (file-systems
   (cons* (file-system
            (mount-point "/")
            (device (file-system-label "Guix_image"))
            (type "ext4"))
          (file-system
            (mount-point "/boot")
            (device (file-system-label "GNU-ESP"))
            (type "vfat"))
          %base-file-systems))
--8<---------------cut here---------------end--------------->8---

Filesystem info:
--8<---------------cut here---------------start------------->8---
$ lsblk -o name,fstype,uuid,label,partuuid,partlabel
NAME   FSTYPE UUID                                 LABEL      PARTUUID                             PARTLABEL
sda                                                                                                
├─sda1 vfat   6BA3-A04D                            GNU-ESP    1ec0ace3-d9b3-4254-b9f4-c4aa21e572cd GNU-ESP
└─sda2 ext4   f6bc8ad8-ff1a-1754-5330-ac18f6bc8ad8 Guix_image 6dfb79bf-9ec3-4722-91f8-b8e08b8c52a0 Guix_image
--8<---------------cut here---------------end--------------->8---

Should PARTUUID be used instead of fs UUID? I wasn't able to quickly locate the
place where to make this change.