Fedora 35: dnf froze my system during update and kernel 5.15 upgrade and now all kernels are not working

Hello there!

I ran dnf distro-sync as I usually do, saw that among some update kernel 5.15 was available, so I let it update/upgrade. During the process my system froze, every kernel update it freezes for some seconds, but this time it froze and did not come back after more than 5 minutes. I waited almost 10 and shut my system down.

[Edit]
I am (was) also using NVIDIA driver 495.xx which has the some problems as 470.xx of freezing, but much less frequent. Depending on how long I am using my machine it would freeze once a day.

Tuning it on again I am presented with dracut rescue after GRUB and my LUKS password. I thought it would be just the new kernel entry, but reboot and trying the 5.14 ones got me the same result.

Tried some chroot from a live media but always (as I always had with my other/test machine, get the message “chroot: failed to run command ‘/bin/bash’: No such file or directory” or “chroot: failed to run command ‘/bin/sh’: No such file or directory”

How can I recover from it? Please help!

my partitions:

nvme0n1
├─nvme0n1p1 vfat FAT32 F6BE-FC09
├─nvme0n1p2 ext4 1.0 3aa2077a-b75f-4856-93b1-0f8ea009d3cd
└─nvme0n1p3 crypto_LUKS 2 de32dfc6-5d78-42c7-84fc-3cd6b48573e2
The one with LUKS in BTRFS, I can mount and see all files and alsof from of all other partitions.

1 Like

Hello @msmafra ,
Sorry to hear about your woes. Take a look at this article from the Fedora Magazine last year about dracut, the emergency shell, and initramfs, by @glb. It covers the details I think, and maybe Greg will drop by to help out since I tagged him on it. https://fedoramagazine.org/initramfs-dracut-and-the-dracut-emergency-shell/
Let me know if it helps you.

2 Likes

I have no idea why it wouldn’t be able to find /bin/bash, but you might be able to copy the one from your dracut environment onto the file system you are trying to chroot. The /bin/bash binary from your dracut environment might not be exactly the same though (I think it might be statically linked). So you might want to copy it somewhere different in the file system you are trying to recover (e.g. cp /bin/bash /sysroot/bash; chroot /sysroot /bash). From there you might be able to bring up your networking and get distro-sync to (re)run.

2 Likes

I can only add a (very) ugly worst case solution:
Start Fedora Live and add a further storage (e.g., a USB drive) that can be formatted. Install a new Fedora completely on the USB drive EXCEPT /boot. Install /boot in the corrupted old /boot directory and make the installer format it.

Then, boot the new system, update it so that you have the current kernel in /boot and then, simply change the root partition in the grub entries to your old installation.

I assume it makes also sense to mount your old root partition to change the graphics driver to nouveau or such before you boot from it.

Its ugly, but maybe its faster than more professional solutions.

1 Like

Thanks! I also remembered that article, with your reminder I took a look at it but, wasn’t able to solve it with that.

Thanks for the answer!
I realized that I was not putting the correct path for chroot and some different methods from different places were confusing me. But I did get into chroot, tried fixing it (grub2-mkconfig, dracut --force --regenerate-all etc), ran dnf distro-sync; I fixed some conflicting packages; finished the 5.15 installation, but not even using the other kernel entries I was able to get back to my desktop. Tried even rEFInd but I would get stuck at initrd-switch-root, the same as with GRUB, or I get stuck at /dev/gpt-auto-root" always falling into the Rescue prompt.

“I already entered in chroot ran dnf distro-sync / grub2-mkconfig / dracut. Grub2-mkconfig removed my entries. I am trying to boot with rEFInd, I get stuck initrd-switch-root, the same as with GRUB or I get stuck at /dev/gpt-auto-root”

After spending too much time with it I installed everything from scratch an restore my backups.

Thanks a lot for the help.

1 Like

Thanks for the answer.

I decided to install everything from scratch.