Re: Dracut fails to boot root-fs

Carsten Hauck <[email protected]> Mon, 13 Apr 2026 22:46:48 +0200
Newsgroups gmane.linux.gentoo.user
Message-ID <gdnsed32sjk6u2fdut37a3qg33zus2dkrhdiy5nlk4oorgulgp@h3ecdbeofe3m>
On 13/04/26 at 01:33, Michael wrote:
>On Sunday, 12 April 2026 23:40:30 British Summer Time Carsten Hauck
>wrote:
>> On 12/04/26 at 01:01, Michael wrote:
>> >On Sunday, 12 April 2026 11:43:04 British Summer Time Carsten Hauck
>> >wrote:
>> >> On 11/04/26 at 12:49, Michael wrote:
>> >> >On Saturday, 11 April 2026 00:49:56 British Summer Time Carsten
>> >> >Hauck wrote:
>> >[snip ...]
>> >
>> >> >> It states:
>> >> >> dracut Warning: Could not boot.
>> >> >> dracut Warning: /dev/disk/by-uuid/73afXXX does not exist
>> >> >
>> >> >Did you install 'sys-fs/cryptsetup' before creating the initramfs
>> >> >with dracut?
>> >> >
>> >> >What modules have you added in /etc/dracut.conf?
>> >>
>> >> Hi Michael, thanks for the answer.
>> >> Yes, cryptsetup is installed and it obviously works. After dropping
>> >> to the shell I can mount and access /dev/mapper/cryptroot without
>> >> any further actions requiered.
>> >
>> >It works manually, but not from within your initramfs.  The wiki
>> >mentions you should install cryptsetup once you chroot into the new
>> >system and *before* you run dracut.
>> >
>> >I wonder if dracut is missing some module, e.g. crypt, dm (and
>> >crypt-gpg if you use gpg encryption for the luks key) which would
>> >allow it to run cryptsetup and create /dev/mapper/cryptroot.
>>
>> I don't think cryptsetup is the issue. I did install it before
>> creating the initramfs.
>
>OK, good.
>
>> In fact dracut was run several times since,
>> automatically while updating the chroot and also manually. After
>> loading the kernel I am prompted for the passphrase for
>> /dev/nvme0n1p4 as expected. After dropping to the dracut-shell the
>> LUKS-device is already decrypted and /dev/mapper/cryptroot is
>> present. Also in the dracut-shell I obviously only have the tools
>> that are included in the initramfs.
>>
>> What makes me wonder: In /dev/disk/by-uuid and /dev/disk/by-label I
>> find the devices that are present before the LUKS-device is
>> decrypted, but no reference to LABEL="root" and UUID=73afXXX
>
>There should be a /dev/dm-0 and symlinks to it.  From what you mention
>it means the dm-crypt mapping has not taken place.  Try 'dmsetup status'
>or 'dmsetup info' to confirm.  Then 'dmsetup mknodes' to see if the
>decrypted device becomes mapped and listed correctly.
>
>
>> I think you could be right that dracut is missing a module, but maybe
>> it is more of an issue with udev? Any thoughts?
>
>I don't think this is a udev generated error.  You can check your logs
>for kernel's uevent errors after your chroot (/var/log/dmesg).  It would
>complain it can't find a block device.  Anyway, here's some options to
>try out:
>
>You can check the UUIDs in your fstab and UUIDs or PARTUUIDs in grub
>config are all correct.  Then you could try adding this in your
>dracut.conf:
>
>omit_dracutmodules+=" udev-rules "
>
>and recreating your initramfs with '--add-fstab /etc/fstab' to help
>overcome any dynamic udev glitch.
>
>Alternatively, when boot fails because of slow block devices, I have
>used e.g.:
>
>rootdelay=3 rootwait
>
>when booting from a USB spinning drive to give it enough time to spin up
>and settle before the kernel gives up on it.  Or you could add perhaps
>rd.retry=100
>
>
>> >> The modules I expect to need are all included by default, so at the
>> >> moment I have no further modules added. I wonder if udev should
>> >> scan the decrypted LUKS-device again?
>> >>
>> >> >> I can mount and access the root filesystem
>> >> >> (/dev/mapper/cryptroot)
>> >> >> without problem but even after mounting it on /sysroot and
>> >> >> exiting
>> >> >> the shell it fails to boot and drops me right back into the
>> >> >> shell.
>> >> >>
>> >> >> dracut:/# blkid
>> >> >> /dev/nvme0n1p3: UUID="66b9XXX" TYPE="swap" PARTUUID="7f17XXX"
>> >> >> /dev/nvme0n1p1: UUID="C900XXX" BLOCK_SIZE="512" TYPE="vfat"
>> >> >> PARTUUID="9f76XXX"
>> >> >> /dev/nvme0n1p4: UUID="332dXXX" TYPE="crypto_LUKS"
>> >> >> PARTUUID="52a0XXX"
>> >> >> /dev/nvme0n1p2: LABEL:"boot" UUID="aef0XXX" BLOCK_SIZE="4096"
>> >> >> TYPE="ext2" PARTUUID="c457XXX"
>> >> >> /dev/mapper/cryptroot: LABEL="root" UUID"73afXXX"
>> >> >> BLOCK_SIZE="512"
>> >> >> TYPE="xfs"
>> >> >>
>> >> >> dracut:/# cat /proc/cmdline
>> >> >> BOOT_IMAGE=/vmlinuz-6.18.18-gentoo-dist root=UUID=73afXXX ro
>> >> >> rd.lang=de rd.vconsole.keymap=de-latin1
>> >> >> rd.luks.name=332dXXX=cryptroot
>> >> >>
>> >> >> I tried to modifie the GRUB commandline to access the root
>> >> >> filesystem
>> >> >> by LABEL or by /dev/mapper/cryptroot with the same effect.
>> >
>> >I tend to stick to rd.luks.uuid and once it works as intended I add
>> >LABEL if desired.  'lsblk -o name,LABEL,uuid /dev/nvme0n1' will show
>> >what IDs you can use.
>>
>> My thinking was, if it can't find the partition by UUID, maybe I can
>> force it to find it by name? Only editing the GRUB-commandline in that
>> respect didn't change the result.
>
>From what you posted your initramfs cannot find the decrypted block
>device because it has not been mapped by dm-crypt.  It seems the
>cryptsetup command fails for some reason.
>
>I know you have re-installed your system, which should not be necessary
>to fix this problem, but if the above suggestions won't help you could
>retrace your steps again as per:
>
>https://wiki.gentoo.org/wiki/Rootfs_encryption
>
>in case there's something else you have missed or is not immediately
>obvious without sharing all your setup information in detail.
>
>PS. Instead of LVM you could also use btrfs with subvolumes, all of them
>sharing a large encrypted partition.
>
>PPS. You can keep swap encrypted with dm-crypt and a random key thrown
>away each time, rather than luks.  I haven't looked to check if this
>will work without additional configuration when swap is used for
>hibernation, so YMMV.

Thanks a lot for the input! That's some homework to try. I may need a 
couple of days to find the time to experiment but I will report back.  
Thanks again!