boot failure with /lib/dracut/hooks/initqueue/finished/90-crypt.sh

Hi!

I’m running a Tumbleweed with LUKS encryption and LVM enabled: boot is not encrypted so that I only need to enter my passphrase when actually booting from GRUB.
Yesterday, I upgraded with

zypper dup

and also tried to add a new kernel module to dracut (trying to do GPU passthrough with Intel GTV-g).
When I reboot my machine and select OpenSuse TUMBLEWEED in GRUB, prompt for passphrase is never shown and I have following logs:

https://i.imgur.com/9cg5igF.png

I’m not sure why this happened, but I thought it was related to initramfs. I can boot using USB rescue system and manually mount my LUKS / LVM partitions. Just in case I rollbacked using snapper to the state prior to zypper dup, but it changed nothing. This also reverted my changes to dracut configuration for modules. Obviously something is wrong with my /boot here.
When I run

dracut --regenerate-all --force

I have the following logs:

https://pastebin.com/raw/DbTtTbMV

I then run

grub2-mkconfig -o /boot/grub2/grub.cfg

to update my grub.cfg.

This didn’t fix my issue.

I suppose something is wrong with dracut, but I’m not sure what…

That you are not prompted for a password probably explains most of the other problems.

How often do you upgrade? Or, to be more specific, was this the upgrade that gave you a 5.11.2 kernel?

If it is, then try booting to the previous kernel (probably a 5.10.x kernel). I’m guessing that might work.

I’ll wait to hear the result of that test before I further speculate.

Thank you for the swift reply!

Indeed, without password, no disk to mount…

I upgrade twice / thrice a week, but I think you’re right about the kernel: my current default is 5.11.2-1, and I can select 5.10.16-1. However even when booting 5.10.16-1 I have the issue.

If it also fails with the older kernel, that makes it more difficult to analyze what went wrong. Presumably there is a problem with the “initrd”. Usually this kind of problem is because a needed module has not been included in the “initrd”.

You can maybe try downloading the live media for the current Tumbleweed. See if that boots. Then unlock your encrypted file systems. If that all works, then use “lsmod” to see what modules have been loaded. And then try to work out which of those are needed during boot, but are not in the “initrd”.

OK, I also tried with the latest Tumbleweed live media. Here is what I checked:

# lsinitrd /mnt/boot/initrd-5.11.2-1-default

https://pastebin.com/aQDc1LiP

# lsmod

https://pastebin.com/pZW5U7Tu

All I could think of is present: btrfs, crypt, dm, lvm, suse-btrfs, suse-xfs, suse-initrd…
Is there something I’m missing? Could it be dm_crypt?

I’m not seeing anything obvious. I did check the “hci” modules, and they all seem to be there.

Thank you for your help so far! I guess I’ll just give up and try to re-install my root partition. Maybe I’ll see what I missed afterward.

Hi again! A quick follow up for anyone getting the same issue.
Problem is not due to kernel update (at least not solely), but due to a kind of kernel arguments / modules configuration.
I re-installed my root partition with a fresh Tumbleweed and tried to configure for Intel GTV-g once again.
As per Archlinux wiki, one need to enable kvmgt, vfio-iommu-type1 and vfio-mdev kernel modules and set following parameters: intel_iommu=1, i915.enable_gvt=1 and i915.enable_guc=0 (I think this last one is not compulsory).
I believe the idiomatic way of handling this with a regular openSUSE installation is through dracut.

Just in case this time I made a quick backup of my /boot and /boot/efi partitions using dd:


# dd if=/dev/nvme0n1p1 conv=sync,noerror bs=64K | gzip -c  > /PATH/backup_boot.img.gz
# dd if=/dev/nvme0n1p2 conv=sync,noerror bs=64K | gzip -c  > /PATH/backup_boot_efi.img.gz

(copy can be restored with # gunzip -c /PATH/backup_boot.img.gz | dd of=/dev/nvme0n1p1)

And then created a file in /etc/dracut.conf.d/98-gvt-g.conf with the following content:


drivers+=" kvmgt vfio-iommu-type1 vfio-mdev "
kernel_cmdline+=" intel_iommu=1 i915.enable_gvt=1 i915.enable_guc=0 "

And ran

# dracut --reconfigure-all --force

To regenerate my initrd. When I reboot I get the exact same error as above. I start installation drive rescue mode again, mount my encrypted partitions etc:


# cryptsetup luksOpen /dev/nvme0n1p3 a
# cryptsetup luksOpen /dev/nvme1n1p1 b
# lvchange -ay system                    // (my LVM volume group is called system)
# mount /dev/system/root /mnt
# mount --bind /sys /mnt/sys
# mount --bind /proc /mnt/proc
# mount --bind /dev /mnt/dev
# chroot /mnt
# mount -a
# rm /etc/dracut.conf.d/98-gvt-g.conf
# dracut --reconfigure-all --force
# exit
# reboot

And I can reboot on my system. I believe that’s what I already did before creating this topic, but maybe I overlooked something, I have no idea. Anyway now this is enough to fix boot.

However, I have no idea why I can’t setup these kernel modules. Maybe my hardware is not compatible?
I have a System76 Lemur Pro with Intel Iris Xe Graphics. Since this is designed to run linux I didn’t expect this kind of issue, but maybe Intel Iris Xe is just not compatible with Intel GVT-g.

That’s wrong. This is visible to dracut only, but it will have no effect on kernel (kernel will not see these entries). To provide options to kernel modules you must set them on kernel command line (e.g. using YaSt bootloader) or via /etc/modprobe.d configuration file (but then make sure this file is also present in initrd).

If arvidjaar’s advice is not helping you, please create bug report at https://bugzilla.kernel.org/ .

Hello from months ago…

Just trying to get the same up and running and I noticed that modprobe vfio-mdev returns:

modprobe: FATAL: Module vfio-mdev not found in directory /lib/modules/5.14.1-1-default[FONT=arial]

So, I guess the module that would make all this possible is missing?
[/FONT]

Hi
The module name is just mdev now.

Thank you.

It loaded just fine now. I’ll give the complete setup a go later this week after and post a simple howto afterwards.

Unfortunately that doesn’t seem to have been the problem. Loading kvmgt vfio-iommu-type1 vfio-mdev results in failed boot at “basic system” and the following error.

Sep 19 09:50:50 localhost kernel: ioremap error for 0x7aeb7000-0x7aeb8000, requested 0x2, got 0x0Sep 19 09:50:50 localhost kernel: ucsi_acpi: probe of USBC000:00 failed with error -12

After rescuing the system and loading the modules separately I get…

 9674.025680] i915 0000:00:02.0: Driver cannot be asked to release device
 9674.025695] i915 0000:00:02.0: MDEV: Registered

And no output from modprobe vfio-iommu-type1 and mdev, but lsmod says they are loaded. I don’t mean to hijack the thread, but it would be nice if a solution were found to a shared problem.