Unable to boot btrfs on luks partition using Linux5.12.15arch1-1

Hi everyone, I’m relatively new to Linux and entirely new to EndeavourOS. I’ve been trying to follow This guide , and I ran into some issues.

$ sudo downgrade linux 
# select 5.12.15-arch1-1 
$ sudo downgrade linux 

So far, I’ve been unable to generate an initramfs to boot this kernel version. I’m using Dracut 059 and GRUB2. My goal is to maintain a GRUB menu entry that allows me to boot into either 6.6.23-1-lts or the latest kernel, separately from an entry for 5.12.15-arch1-1, which I would prefer for virtual machine experimentation.

However, for some reason, the 5.12.15-arch1-1 kernel won’t boot. My grub.cfg file currently looks like this for the 6.6.23-1-lts (which boots fine):

submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-6af8be56-b217-4098-b6be-008e2a91e2c9' {
    menuentry 'Arch Linux, linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-6af8be56-b217-4098-b6be-008e2a91e2c9' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root F1A5-5169
        echo    'Loading Linux linux-lts ...'
        linux   /vmlinuz-linux-lts root=UUID=6af8be56-b217-4098-b6be-008e2a91e2c9 rw rootflags=subvol=@  loglevel=3 quiet intel_iommu=on iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=nouveau usbcore.autosuspend=-1 snd_hda_intel.power_save=0
        echo    'Loading initial ramdisk ...'
        initrd  /intel-ucode.img /initramfs-linux-lts.img
    }

Here, after the “Loading vmlinux-linux-lts and initramfs” messages, it immediately prompts for the encryption key and boots normally. However, for the entry:

    menuentry 'Arch Linux, linux 5.12.16-arch1-1 ' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-6af8be56-b217-4098-b6be-008e2a91e2c9' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root F1A5-5169
        echo    'Loading Linux linux ...'
        linux   /vmlinuz-linux root=UUID=6af8be56-b217-4098-b6be-008e2a91e2c9 rw rootflags=subvol=@  intel_iommu=on iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=nouveau usbcore.autosuspend=-1 snd_hda_intel.power_save=0
        echo    'Loading initial ramdisk ...'
        initrd /intel-ucode.img /initramfs-linux-5.12.15-arch1-1.img
    }

With this configuration, I encounter the same issue as the OP from this thread.

It seems like Dracut times out while waiting for the LUKS partition to become available in /dev/mapper/luks-UUID/. From rdsosreport.txt:

[  137.642155] dracut-initqueue[635]: Warning: dracut-initqueue timeout, still waiting for the following initqueue hooks:
[  137.645434] dracut-initqueue[635]: Warning: /lib/dracut/hooks/initqueue/finished/devexists-\x2fdev\x2fdisk\x2fby-uuid\x2f6af8be56-b217-4098-b6be-008e2a91e2c9.sh: "if ! grep -q After=remote-fs-pre.target /run/systemd/generator/systemd-cryptsetup@*.service 2>/dev/null; then
[  137.645434] pgpc dracut-initqueue[635]:     [ -e "/dev/disk/by-uuid/6af8be56-b217-4098-b6be-008e2a91e2c9" ]

It eventually times out, warns that /dev/mapper/luks-UUID does not exist, and enters an emergency shell. I suspect this might be an issue with Dracut, given that the 6.8 image works fine with the same setup. Is there perhaps a switch, setting, or command line option, or a module that needs to be explicitly included in Dracut for older kernels to boot on LUKS partitions?

Here are my configuration files:

$ sudo cat /etc/dracut.conf.d/* 
# Configuration file automatically written by the Calamares system installer
# (This file is written once at install time and is safe to edit.)
# Enables support for LUKS full disk encryption with single sign-on from GRUB.

# force installing /etc/crypttab even if hostonly="no"
install_items+=" /etc/crypttab "
add_device+=" /dev/mapper/luks-207e5827-32f3-4f45-8037-c82bf5a592ba  "
omit_dracutmodules+=" network cifs nfs nbd brltty "
compress="zstd"
add_dracutmodules+=" resume "
add_drivers+=" vfio vfio_iommu_type1 vfio_pci vfio_virqfd "
In the attached thread (while he was using systemd and I am using GRUB), it seems his issue was resolved after moving to mkinitcpio, which I've tried. However, not even the 6.8 Kernel initramfs seems to boot. I guess I need to find a way to generate an mkinitcpio.conf that translates exactly to whatever Dracut is currently doing.

Any thoughts?

Thank you.

You do realize that the author of this guide was probably using that kernel version because it was still relatively new when said guide was written, correct? If you want to try an older kernel that’s still being maintained, try the linux-lts515 from the AUR. Personally, I would search for a more up-to-date guide that uses the v6 kernel branch.

Thanks for the response.

If I recall correctly, VPU_UNLOCK required and still requires 5.12 Kernels. Though finding an LTS version sounds like a good Idea I can give a shot to. But any other idea is appreciated.

I found this on GitHub: https://gitlab.com/polloloco/vgpu-proxmox. There is no mention of required kernel version(s), only specific entries for various Nvidia drivers. Since they reference the latest 550 branch, I seriously doubt that such an old (and unmaintained) kernel version would be a hard prerequisite.

1 Like

Thank you,

I think you are right. Ditched my attempt to boot the old kernel because my Graphics card is not compatible with vgpu_unlock anyway. Thanks for taking a look!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.