Hi,

I'm configuring a new Debian installation on my workstation, with both the 
/boot partition and the root filesystem encrypted:
- /dev/nvme0n1p1 -> /EFI
- /dev/nvme0n1p2 -> LUKS2 (pbkdf2) -> /boot
- /dev/nvme0n1p3 -> LUKS2 -> LVM containing root and other volumes

The system boots, but requires entering the /boot password twice:
Once for GRUB, and once again during systemd initialization.

Both devices are properly configured in /etc/crypttab with the UUIDs for 
/dev/nvme0n1p2 and /dev/nvme0n1p3 respectively (as outputted by blkid).
GRUB_CMDLINE_LINUX contains the correct cryptdevice parameters for both 
partitions, also with UUIDs.

I checked the initramfs contents using 'unmkinitramfs' in /tmp/initramfs/ to 
review main/cryptroot/crypttab, but it only contains an entry for lvm_crypt, 
boot_crypt is missing.
That leads me to believe that after GRUB hands off control to the kernel, the 
boot_crypt mapping is lost.
Systemd then attempts to decrypt boot_crypt again.

Things I attempted:
1. Systemd unit overrides to prevent the second decryption
2. Moving the boot_crypt entry to the first line in crypttab, just in case the 
cryptroot hook located at /usr/share/initramfs-tools/hooks/cryptroot processes 
only the first entry. Of course, that didn't do anything - Debian is pretty 
stable after all.
3. Various initramfs configuration attempts

Every time after making changes, I executed:
update-initramfs -u -k all
grub-install --target=x86_64-efi --efi-directory=/efi (I deleted my old 
/boot/efi folder and remapped the /dev/nvme0n1p1 device to /efi in /etc/fstab 
and as far as I can see, it works fine)
update-grub
reboot now

Very, very often, my changes resulted either in timeouts and /boot not being 
mounted, or the overrides not working.

So here are some questions I need help with:
1. Why isn't a crypttab entry for boot_crypt included in the initramfs?
2. Is there a recommended way to preserve the device mapping from GRUB?
3. Is this setup even supported/recommended?

System details:
Kernel: 6.1.0-30-amd64
Debian version: 6.1.124-1 (2025-01-12) x86_64 GNU/Linux
'dpkg -l | grep -E "grub|cryptsetup" outputs the following packets:
cryptsetup, cryptsetup-bin, cryptsetup-initramfs, grub-common, grub-efi-amd64, 
grub-efi-amd64-bin, grub-efi-amd64-signed, grub2-common and 
libcryptsetup12:amd64

I really hope you can help me.
Best regards,
Automætic

Reply via email to