Package: dracut
Version: 106-5
Severity: critical
X-Debbugs-Cc: adrela...@whonix.org, arraybo...@ubuntu.com

Unsure if the chosen severity is appropriate, but this bug renders
affected systems unbootable and the recovery procedure is a serious
headache, so I think this counts as "breaking the whole system".

Steps to reproduce:

* Install Debian Trixie with LUKS full disk encryption. The encryption
  + LVM setup created by D-I works, as does a encrypted root +
  unencrypted /boot setup made using Calamares with a live Debian
  Trixie ISO.
* Boot into the installed system.
* Install `dracut` with `sudo apt install dracut`.
* Reboot.

Expected result: The system should present a passphrase prompt for you
to unlock the disk, upon providing the passphrase the disk should be
unlocked and the system should boot.

Actual result: The system hangs on the Plymouth screen for about 360
seconds. If you attempt to boot with `rd.debug` set, you will see it's
unable to find the root filesystem.

What's happening here, based on my research, is that dracut does not
install the info needed to find the LUKS volume into the initramfs
unless `hostonly=yes` is set. As a result, the initramfs isn't able to
find the encrypted disk, and then of course the system fails to boot.

If you end up with an unbootable system, the recovery procedure requires
booting the system from a live USB, manually decrypting the LUKS volume
with the right name, mounting it, mounting in the boot directory,
bind-mounting in critical other directories, then chrooting in and
regenerating the initramfs that way. It's doable, yes, but it's not
easy, and I believe if you don't specify the right name when decrypting
the disk, you'll probably end up with a broken initramfs when you
regenerate it.

The solution is to set `hostonly=yes` somewhere in Dracut's config in
Debian. This will cause the generated initramfs to be machine-specific;
this can be mitigated by also setting `hostonly_mode=sloppy` so that
additional drivers are installed into the initramfs. That way the
installation is more likely to work if moved between different
computers. See
https://www.man7.org/linux/man-pages/man5/dracut.conf.5.html.

Note, I believe this is the same issue reported by Celejar at
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078792#75. However,
the root cause of the issue was fundamentally different than that
(already fixed) bug, so I filed a new report.

Attachment: pgpBkF6Km5LkO.pgp
Description: OpenPGP digital signature

Reply via email to