Subject: Guix gc breaks grub
From: "Xavier Montillet" <[email-masked]>
To: [email-masked]
Date: Tue, 30 Jul 2019 22:03:54 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

*Symptoms*

After running guix gc, and rebooting, I got the following errors (which stay something like half a second on the screen):

error: no such device: /gnu/store/0fijjh7qw8ppsks0ba3q9m873ljhj797-grub-2.04/share/grub/unicode.pf2
error: file `/gnu/store/0fijjh7qw8ppsks0ba3q9m873ljhj797-grub-2.04/share/grub/unicode.pf2' not found.
error: no suitable video mode found.
error: no video mode activated.

I then get to the grub menu where I can pick which version of Guix I want to boot on, but all of them lead to getting stuck on the following text (with nothing moving after that for at least several minutes):

error: no suitable video mode found.
Booting in blind mod

*Fix
*

Fortunately nckx was on IRC and saved me by telling me to press C to get the grub command line when I got to the grub menu and run setup_gfxterm.

Running guix system reconfigure config.scm removed the need for setup_gfxterm for subsequent boots.

*Cause*

guix gc thinks that grub (and a lot of other stuff that it shouldn't think is dead) is dead, as shown by the following commands (given by nckx):

$ grep unicode /boot/grub/grub.cfg
search --file --set /gnu/store/0fijjh7qw8ppsks0ba3q9m873ljhj797-grub-2.04/share/grub/unicode.pf2
if loadfont /gnu/store/0fijjh7qw8ppsks0ba3q9m873ljhj797-grub-2.04/share/grub/unicode.pf2; then

$ guix gc --list-dead | grep 0fijjh7qw8ppsks0ba3q9m873ljhj797
finding garbage collector roots...
determining live/dead paths...
/gnu/store/0fijjh7qw8ppsks0ba3q9m873ljhj797-grub-2.04

I was also able to reproduce the bug by running guix gc and rebooting again.