Subject: bug#69319: Unbootable, unfixable system

From: Hilton Chain <[email-masked]>
Date: Sun, 25 Feb 2024 10:59:20 +0800

Hi Nathan,

On Sun, 25 Feb 2024 08:48:35 +0800,
Nathan Dehnel wrote:
>
> On Fri, Feb 23, 2024 at 11:17 AM Nathan Dehnel <[email-masked]> wrote:
> >
> > On Fri, Feb 23, 2024 at 1:15 AM Nathan Dehnel <[email-masked]> wrote:
> > >
> > > This config results in grub rescue "unknown filesystem <uuid of my
> > > btrfs rootfs>" when I try to boot it. I have verified that all the
> > > device uuids are correct, and the bootloader, mapped-devices, and
> > > file-systems sections are identical in form to my other system which
> > > boots fine. i can mount the boot partition and unlock and mount the
> > > root partition manually, so they're not broken. I have no idea why
> > > it's not working. My guess is that reconfigure is broken inside a
> > > chroot somehow.
> > >
> > > (use-modules (gnu))
> > > (use-service-modules networking ssh sysctl shepherd base)
> > > (use-package-modules vpn linux)
> > > (use-modules (nongnu packages linux)
> > >             (nongnu system linux-initrd)
> > >             (gnu services)
> > >             (guix packages)
> > >             (gooby-channel packages baksnapper))
> > > (define bashrc
> > >    (local-file "../bashrc"))
> > > (define nanorc
> > >    (local-file "../nano/nanorc"))
> > > (operating-system
> > > (kernel linux)
> > >  (initrd microcode-initrd)
> > >  (firmware (list linux-firmware))
> > >  (locale "en_US.utf8")
> > >  (timezone "America/Chicago")
> > >  (keyboard-layout (keyboard-layout "us"))
> > >  (host-name "guixoffline")
> > >  (bootloader
> > >    (bootloader-configuration
> > >      (bootloader grub-efi-bootloader)
> > >        (targets '("/boot/efi1"))
> > >      (keyboard-layout keyboard-layout)))
> > >  (mapped-devices
> > >    (list (mapped-device
> > >            (source
> > >              (uuid "14930dad-016d-4b59-b7d8-d5af2c33f4b0"))
> > >            (target "offline1")
> > >            (type luks-device-mapping))
> > > ))
> > >  (file-systems
> > >    (cons* (file-system
> > >             (mount-point "/boot/efi1")
> > >             (device (uuid "3339-DAE2" 'fat32))
> > >             (type "vfat"))
> > >           (file-system
> > >             (mount-point "/")
> > >             (device "/dev/mapper/offline1")
> > >             (type "btrfs")
> > >             (options "compress=zlib:9")
> > >             (dependencies mapped-devices))
> > >           %base-file-systems))
> > >  (users (cons* (user-account
> > >                  (name "nathan")
> > >                  (comment "Nathan Dehnel")
> > >                  (group "users")
> > >                  (home-directory "/home/nathan")
> > >                  (supplementary-groups '("wheel" "netdev" "audio" "video")))
> > >                %base-user-accounts))
> > >  (packages
> > >    (append
> > >            (specification->package "btrfs-progs")
> > >            (specification->package "parted")
> > >            (specification->package "mdadm")
> > >            (specification->package "git")
> > >            (specification->package "nss-certs")
> > >            (specification->package "nix")
> > >            (specification->package "efibootmgr")
> > >            (specification->package "smartmontools")
> > >            (specification->package "iotop")
> > >            (specification->package "bcache-tools")
> > >            (specification->package "lsof")
> > >            (specification->package "wireguard-tools")
> > >            (specification->package "baksnapper")
> > >            (specification->package "file")
> > >            (specification->package "rsync"))
> > >      %base-packages))
> > >  (services
> > >    (append
> > >      (list
> > >           (service openssh-service-type
> > >             (openssh-configuration
> > >              (permit-root-login #t)
> > >              (password-authentication? #t)
> > >              (authorized-keys
> > >               `(("root" ,(local-file "ssh/root-gentoodesktop.pub"))
> > >                 ("root" ,(local-file "ssh/baksnapper-gentoodesktop.pub"))
> > >                 ("root" ,(local-file "ssh/baksnapper-gentooserver.pub"))
> > >                 ("root" ,(local-file "ssh/nathan-guixlaptop.pub"))
> > > ))))
> > >            (service connman-service-type)
> > >            (service ntp-service-type)
> > >            (service gpm-service-type)
> > >            (simple-service 'nanorc etc-service-type
> > >                        (list `("nanorc", nanorc)))
> > > )
> > >        %base-services)))
> >
> > It seems I may have fallen for the grub luks2 compatibility issue,
> > which I didn't know about. I will investigate later.
> >
> Yeah, that was the problem.

GRUB currently doesn't support Argon2 PBKDFs, if you are going to use LUKS2, you
have to specify pbkdf2:
--8<---------------cut here---------------start------------->8---
cryptsetup --type=luks2 --pbkdf=pbkdf2
--8<---------------cut here---------------end--------------->8---

In case it's needed, I packaged a GRUB variant with Argon2 support and its
bootloader definition in my channel:
https://github.com/rakino/Rosenthal/blob/trunk/rosenthal/packages/bootloaders.scm
https://github.com/rakino/Rosenthal/blob/trunk/rosenthal/bootloader/grub.scm

I re-installed my system with this GRUB variant (also intended to test it)
recently, and it works just fine.

I think this bug can be closed now?