Subject: bug#70897: Guix system hangs on boot with LUKS root partition

From: Ludovic Courtès <[email-masked]>
Date: Mon, 13 May 2024 12:14:34 +0200

Hi Kaelyn,

Kaelyn <[email-masked]> skribis:

> I recently updated my systems after finally finding https://issues.guix.gnu.org/70051 and seeing the issue I was having with booting with a non-root LUKS partition configured had been fixed. After updating to a commit past these two:
>
>   49f82fca41 mapped-devices: luks: Specify modules needed at the top-level.
>   6062339156 mapped-devices: <mapped-device-type> can specify modules to import.
>
> I am now seeing a different error, which I am pretty sure is related
> to the module import changes in 49f82fca41. The error I get is about
> an unknown symbol "system*/tty" when the initramfs tries to prompt for
> a password to unlock the LUKS partition containing the root
> filesystem.

To be clear, you have both a LUKS-encrypted root and a non-root
LUKS-encrypted partition?

(FWIW I tested (1) with a LUKS-encrypted root, and (2) with a cleartext
root and LUKS-encrypted /home.  The bug you mention affected #2.)

Could you share your OS config or a relevant subset thereof?

> I don't know how the module plumbing of Shepherd and the generated
> initramfs work, but I suspect the fix for Shepherd opening LUKS
> partition broke the import of system*/tty in the initramfs (for
> example, at the early REPL that booting my latest system generation
> ends up at, system*/tty is undefined initially, but after evaluating
> "(use-modules (gnu build file-systems))" system*/tty resolves to a
> procedure as exected--so the module is at least present in the
> initramfs). I have encountered this error with two different systems,
> and I believe the reproduction is simply trying to open a LUKS device
> without a keyfile so that a password prompt is necessary.

Hmm.  Thanks for investigating!

Ludo’.