Hello,
I have Guix running on one computer already, and wanted to set it
up on another, a ThinkPad L390 Yoga. This was previously running
Debian, but I wiped it to put Guix on, by running `sudo dd
if=/dev/urandom of=/dev/nvme0n1 bs=1M'. After the Guix install,
the laptop doesn’t boot -- the firmware shows a boot device
selection menu, rather than bootint into Guix. The only entry is
the internal NVMe SSD, and choosing it does nothing -- the
firmware can’t figure out how to boot from it. I tried two other
third-party installers based on Guix 1.4.0, and got the same
result. The installer boots and runs fine, the install process
appears to succeed, but after restarting, the machine doesn’t
boot.
This is a very vanilla setup. I used the graphical Guix
installer, let it partition things, and have one partition for
everything. I have no other OS on this computer, I’m not
dual-booting, net-booting, or anything else exotic.
Secure boot is disabled in the BIOS.
I tried updating the firmware on the laptop and restoring it to
the default settings -- no change.
I tried wiping the partition table again, but using /dev/zero --
no change.
If I boot the installer image and drop into its GRUB menu, I can
chainload GRUB off the internal SSD’s ESP, which lets me boot
Guix. So the installation itself is fine, but the bootloader is
broken. After booting this way, I tried `guix pull' and `sudo
guix system reconfigure /etc/config.scm'. This also didn’t work
-- the machine still will not boot.
After digging in the ESP, I thought I’d found a clue: the GRUB
payload is placed at /EFI/Guix/grubx64.efi, and there’s no
/EFI/BOOT/BOOTX64.EFI, which is typically what a UEFI platform
would look for to begin booting the OS. But! My existing Guix
machine (a ThinkPad X13 Gen 2 AMD) *does* boot, but *doesn’t* have
a /EFI/BOOT/BOOTX64.EFI payload, either. My Debian machine has
/EFI/BOOT/BOOTX64.EFI as well as /EFI/debian/grubx64.efi -- both
files have identical contents per sha256sum. But but! The X13
*also* has some Debian files in the ESP, so it’s not 100%
identical to the L390. Not sure how those got there. It’s also a
former Debian box, but I wiped it, and am surprised to see
anything remaining from that.
My only hypothesis around this is that perhaps the EFI variables
are messed up, and resetting BIOS settings doesn’t clear them.
That might make the BIOS do something weird in its boot process;
or make GRUB think some other OS is installed, and install the
bootloader wrong for a single-OS setup.
Does anyone have any suggestions or advice? Needing a USB stick
to boot the machine is a pain.
Thanks,
— Ian