Subject: Re: bug#29662: 'guix gc' as user makes system unbootable

From: [email-masked] (Ludovic Courtès)
Date: Mon, 08 Jan 2018 15:34:38 +0100

Hi Martin,

Sorry for the delay.

Martin Castillo <[email-masked]> skribis:

> On 18.12.2017 15:31, Ludovic Courtès wrote:
>> Under what circumstances did you have a system without
>> /var/guix/gcroots/bootcfg?
>> 
>
> I cannot tell. I had some fs errors and run e2fsck several times. Maybe
> that removed the link? But since then, I had done several reconfigures.
> I'd expect those to recreate it again.

OK.

>>> # guix system switch-generation 14
>>> substitute: updating list of substitutes from
>>> 'https://berlin.guixsd.org'... 100.0%
>>> substitute: updating list of substitutes from
>>> 'https://mirror.hydra.gnu.org'... 100.0%
>>> The following derivation will be built:
>>>    /gnu/store/31bxx2nwp3lxzdkcy8bmybabfl1pi0af-grub.cfg.drv
>>> Von Generation »10« zu »14« gewechselt
>>> $ diff /var/guix/gcroots/bootcfg /boot/grub/grub.cfg
>>> ## no-output, grub.cfg has still the same content->
>>> /var/guix/gcroots/bootcfg changed
>>> # guix system reconfigure confs/config.scm
>>> ## mentions expected grub error
>>> $ diff /var/guix/gcroots/bootcfg /boot/grub/grub.cfg
>>> see diff [2]
>>>
>>> it does not seem to update /var/guix/gcroots/bootcfg.
>>> and bootcfg somehow lists the generation number in the default entry.
>> 
>> Are you saying that ‘guix system switch-generation’ does not update the
>> target of the /var/guix/gcroots/bootcfg symlink?  (From a quick look at
>> the code it seems to update it.)
>
> No, if you read it again, you see that 'switch-generation' updates it
> correctly. 'reconfigure' doesn't seem to update it!

Looking at guix/scripts/system.scm, ‘install-bootloader’ definitely
installs the ‘bootcfg’ symlink, except if ‘grub-install’ fails—which is
apparently the case in your transcript above.

Why did you write “expected grub error”?  A GRUB error is never
something one should expect.  :-)

Ludo’.