Subject: bug#27735: Unbootable images with GuixSD on... "GuixSD"

From: Danny Milosavljevic <[email-masked]>
Date: Mon, 17 Jul 2017 19:17:31 +0200

Hi T G-R,

On Mon, 17 Jul 2017 16:40:56 +0200
Tobias Geerinckx-Rice <[email-masked]> wrote:

> The installer's now expects exactly one "GuixSD" partition when booting
> — at least on UEFI. If the GRUB finds two, the GRUB will randomly
> choose. In my case, the GRUB chose a frozen system.

Sorry!

> The real problem here is that we're using a label as a UUID.

I agree.  Unfortunately Guix UUIDs are difficult to use consistently or I would have changed it over to begin with.

>   (define root-label
>     ;; Volume name of the root file system.  Since we don't know which
> device
>     ;; will hold it, we use the volume name to find it (using the UUID would
>     ;; be even better, but somewhat less convenient.)
>     (normalize-label "GuixSD"))
> 
> I like that understatement. I'm not sure how to go about creating a
> reproducible almost-UUID based on the store hash and passing it to all
> the right places in a reasonably non-horrible manner either, random
> hacker. And it would mean even more work and testing after all the
> heroic effort on the new installer image + UEFI support by Danny,
> Marius, and others.

Yeah, having the UUID actually be derived from the store hash would be good.

I think for now having a random UUID be generated would be fine too.

> Until it does happen, I suggest we change the name to "GuixSD-image"[2].
> Still fragile, but not the PR fail that ‘don't call your GuixSD file
> system GuixSD or it will break GuixSD’ would be.

I think for the time being that's a good workaround.  But I think we should get the UUIDs for booting working.

> [1]: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=651de2bdb5fd451c50933dcf8d647d470d826261

The actual reason I had to change it is because of the dashes (which are not valid in ECMA-6 IRV).

> [2]: Or whatever. 

"GuixSD_installer" ?  Well anyway, just pick one, doesn't matter much which, except that the characters have to be out of [A-Za-z0-9_] (will be uppercased for ISO-9660) because of ECMA-119 Appendix A (ECMA-6 IRV).

>I remember someone (Danny?) calling "-image" an
> implementation detail. I think it's a description of the end result.

Yeah, that was me.  I don't understand how an actual operating system on a drive is an image.  Maybe I'm old-fashioned, dunno, but I think an image is something that is made up by light rays on a screen, not the real object.  In the case of computing an image is a backup file of a drive, not what is on the drive to begin with.

Also, even if it were an image, the image shouldn't say "<foo> image" in the image itself.  A mirror which doesn't add anything to your image when you look into it, either :)