Failed to mount /efi after botched update

Hello there. I’m new to linux, and when encountering a small simple issue (nvidia drivers), have managed to chain together a bunch of not quite fixes until my install is borked.

Long story short, I updated into broken nvidia drivers, tried every varient up ‘clean kernel update’ I could dig up through forums, somehow ended up with a second boot option that worked, then updated again later into the current situation of failed to mount /efi, and this time pacman -S linux will not save me.

My problem seems incredibly similar to this one here:

I tried the solution in that, and I did manage to remove the second old boot option, but could not get it to boot correctly after removing /etc/kernel/cmdline and seeing that the other boot entry left did contain the right root UUID. (Assuming that’s what that fix meant for me to do).

I did try doing pacman -S linux while in there, but noticed when rebooting to test it the entry still read 6.2.8. I don’t know if that means it just didn’t stick to that option or the option name just doesn’t match.

Really desperate to get back in to get access to some important stuff at this point, and I feel like this is so close to working.

I’m not sure what information you’d want to see here, so feel free to ask for anything (though be aware I’m not very linux literate). Do please ask for a bunch at once though, because my setup is only questionably usable, so going into linux to try something takes about 10 minutes each try.

Any help is appreciated, thanks.

1 Like

Did you remove /etc/kernel/cmdline ? If so, you need to figure out what belongs in it, recreate it, chroot into your system and then run reinstall-kernels

Yes I did, though I then rebooted and did pacman -S linux after that failed. I did try sudo reinstall-kernels, but it said the command didn’t exist and I couldn’t find anything on what that might be. I assumed it was a terminal/live USB thing so just did it the -S linux way instead.

That has to be fixed manually. It is customized to your specific system. There is nothing you can reinstall to fix that. That file should never be deleted.

From an arch-chroot can you run pacman -Q | grep dracut, it sounds like you may have deleted some critical packages.

Ah, damn. I thought from that other forum post deleting that was what you were supposed to do. I assumed it was some auto generated file that could have just been stuck with some old bad info to use. What should I do then? I do have an old timeshift from before the second update broke the system for the second and current time, but had no luck restoring to it when I last tried.

If you have a timeshift backup, just take the copy of that one file from it.

I’ll try. Not sure if I can since I had no luck doing anything with it before, but maybe I’ll figure out something. I’m guessing the combination of that file present and updating with reinstall-kernels after removing the bunk boot entry might do it?

1 Like

Also, mind me asking why it was recommended in the other post if it’s never to be done? I’m curious what I’m missing here.

Where do you see that recommended in the other post?

You have multiple issues at this point. You are missing /etc/kernel/cmdline and there are also packages missing.

In the post marked solution (Failing to boot after update (can't mount /efi) - #26 by dalto), it says

Delete /etc/kernel/cmdline if it exists.

That is part of series of steps that are specific to that user and their already broken system, not general advice. That user had already deleted /etc/kernel/cmdline prior to that so the file at that point was filled with junk. In that case, deleting the bad file would be a good step.

That isn’t something anyone else in a different situation should be following. That topic probably wasn’t relevant to your situation to begin with. It just had similar symptoms.

Ah, damn. Well, lesson learnt. Back to whatever is going on with my system, do you know how I could get the file back from timeshift? I’m not finding much other than it seeming like something not really intended outside of whole backups. Failing that, what are my alternatives?

If I remember correctly, timeshift just rsync’s the files to another location. You should be able to mount the volume with your timeshift snapshots and navigate to the file you need and copy it out.

Right, I’ll have to try figure that out, because just chrooting in like normal and doing timeshift --list comes up with nothing. I also can’t get bluetooth to enable anymore like I could earlier today, so am stuck without a mouse and can see something’s gotten worse for my attempts to fix this.

Pretty upsetting but I think at this point I just need to go sleep on it (approaching 4am here) and try again in the morning. Thanks for the help so far and hopefully you’ll be around tomorrow to help lift me out this hole I’ve dug myself.


1 Like

I think I figured it out. Found the backups, dug into the localhost file of the most recent one, found kernel/cmdline and copied it back to etc/kernel.

It reads nvme_load=YES rw root=UUID=ae3cb8f6-3d67-44a0-8de7-5090a5e016c5, which is the same as the options line of my boot entry, bar the missing system id bit.

Guessing I should try the reinstall now or should I check something else first?

Did that, and it shows dracut 056-2. Still can’t find reinstall-kernels though.

Edit: Worth adding, I don’t having deleted anything in this whole mess besides that cmdline file earlier. I think some things might have been recreated during the rather not by the book updates I tried in previous fixing, so maybe in that way stuff’s gone.

If that is the only thing it shows and nothing else, that is a problem.

If you are using systemd-boot, you should also have the package kernel-install-for-dracut. If you are missing that, you did something that uninstalled it.

You need to put your /etc/kernel/cmdline back first, then install that package again.

pacman -Q | grep kernel-install-for-dracut returns nothing, so that’s definitely something.

Installed it. It warned there was a conflict with mkinitcpio and I would have to remove it, and so did. Not sure if that’s useful in knowing what happened. Either way, now try the reinstall-kernels?