Subject: bug#44717: ISO grub config points to nonexistent drive UUID.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 18 Nov 2020 11:31:23 +0100

Hi,

Jesse Gibbons <[email-masked]> skribis:

> I generated the iso with the command
> `guix system disk-image -t iso9660
> --root=installer.BaNl/install-x86.iso --system=i686-linux
> gnu/system/install.scm`
> and flash the sd card with the command
> `sudo bash -c "echo success" && time sudo dd if=install-x86.iso of=/dev/sdc`
>
> When I inspect the GRUB menu, I see the option
> --root=31393730-3031-3031-3139-333534353239
> but in the gnome disk utility on my main laptop I do not see the above
> UUID in any of the partitions on the SD card I'm using, still with the 
> freshly built install iso flashed onto it. Instead I see the UUIDs
> 1970-01-01-19-49-46-83 for partition 1 and 3495-32E0 for partition 2.

The option in the GRUB menu uses the “DCE” format for the UUID, but if
you convert it to an ISO-9660 UUID, it looks almost the same:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,use(gnu system uuid)
scheme@(guile-user)> (string->uuid "31393730-3031-3031-3139-333534353239")
$60 = #vu8(49 57 55 48 48 49 48 49 49 57 51 53 52 53 50 57)
scheme@(guile-user)> (bytevector->uuid $60 'iso9660)
$61 = #<<uuid> type: iso9660 bv: #vu8(49 57 55 48 48 49 48 49 49 57 51 53 52 53 50 57)>
scheme@(guile-user)> (uuid->string $61)
$62 = "1970-01-01-19-35-45-29"
--8<---------------cut here---------------end--------------->8---

The ISO UUID is computed in a deterministic fashion.  Are you sure
you’re looking at the same ISO?

For example, if you pick
<https://alpha.gnu.org/gnu/guix/guix-system-install-1.2.0rc1.x86_64-linux.iso.xz>,
it boots just fine.  In the GRUB menu entry (type ‘e’ in the menu), you
can see both the DCE UUID for ‘--root’ and the ISO UUID for ‘search.fs’,
which are actually the same.

HTH!

Ludo’.