Wondering if anyone can provide insight into an update issue that I had this morning, already resolved

Hello!

I ran sudo pacman -Syu this morning, saw that both Linux and Linux-LTS kernels were available so I went ahead and installed them. By default, I’ve been using the LTS kernel to boot into. After running the upgrade and reboot, I chose the LTS kernel to boot into from the limine bootloader. Received a kernel panic:
Failed to execute /init (error -2)
Kernel panic - not syncing: no working init found. try passing init= option to kernel. See linux documentation/init.txt for guidance.

I then had to hard reboot my system, choose the Linux kernel instead (not LTS), was able to boot into. Started doing research. I first tried to rebuild initramfs using sudo dracut --regenerate-all but the command failed saying something along the lines of:
dracut: Executing: /usr/bin/dracut --kver=6.6.10-arch1-1 dracut: Can't write to /boot/efi/331c2b9ba8d141d282ee9e26cf3c5626/6.6.10-arch1-1: Directory /boot/efi/331c2b9ba8d141d282ee9e26cf3c5626/6.6.10-arch1-1 does not exist or is not accessible.

I then tried to figure more out about this, and stumbled upon this post from our beloved forum:

This post

After reading this, I used sudo dracut-rebuild and my issue was resolved; rebooting and choosing either Linux or Linux-LTS kernels boot my system fine.

My question is, after looking through the related binaries and their associated comments, I can’t seem to find this answer: what is the difference between these commands, why did one work, but the other didn’t?

Thanks so much in advance for any information or insight! Gratefully, my issue is resolved, but I’m just curious about this so I can learn.

As a final side note, I use limine as my bootloader and utilize other packages to automatically make kernel upgrades init images to limine, this is probably the 4th time I’ve had a kernel update in my current system and haven’t ever encountered this issue before this morning.

dracut-rebuild is what you want. This is an EOS-specific command that ensures everything goes in the correct place.

dracut --regenerate-all is a dracut built-in command. However, while it will correctly build the initrds, it doesn’t always put them in the correct location.

1 Like

I thought this might be the case, but I wasn’t sure based in the terminals return from entering the dracut --regenerate-all command. It seemed like it just didn’t have permission to modify anything in the /efi directory because the directory path definitely exists and is mounted, which is what led me to believe if was permission related.

This does now make me wonder why the initial issue happened, when that han’t happened before. Just curiousity in me begging an answer haha, though it’s hard to complain since I was able to resolve the issue. My brain just has a hard time letting go of an issue, even if resolved, if I cant truly understand the root of the issue.

But I’ll keep this in my brain as a lesson learned. Thanks for the insight!

It is more likely that it was trying to write to a path that no longer existed. i.e. you probably were no longer on kernel version 6.6.10-arch1-1

1 Like

Ahhh that makes sense. I wasn’t using that version, I actually copy pasta’d that from the linked endeavourOS forum link I posted (that you also resolved)

But the principle still applies either way. Thanks so much for that, saved my brain a lot of thinking time hahaha

1 Like

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