tl;dr: Hard shutdown during update let to missing /boot/vmlinuz-linux
, cannot install anything using pacman
from live-USB. Is there any hope?
Earlier today I ran yay -Syyu
and my laptop froze while applying the update (unfortunately I did not record when exactly). It completely stopped responding so after about 15 minutes I thought I had no choice except to do a hard shutdown.
Now when I try to boot I am greeted by file: /boot/vmlinuz-linux not found
.
A similar issue was solved on the forum by arch-chrooting from a live-usb and reinstalling linux.
So I tried that, I’m dual booting with windows and the EOS partition is encrypted. So from the live-install I ran udiskctl unlock -b /dev/PA
(where PA
is that partition), and mount /dev/mapper/... /mnt
.
Then I used cat /mnt/etc/fstab
to find out that my ESP should be mounted under /boot/efi
, so I ran mount /dev/PS /mnt/boot/efi
(where PS
is the SYSTEM/FAT32` partition that I assume was my ESP).
Unfortunately when I arch-chroot
into /mnt
running pacman
or yay
does nothing. The exit code is 0
but there is not output.
I figured this means that pacman
was also broken during the interrupted update. From this thead on the arch forums I got the idea to use pacman --root
, but after looking at the man page I decided to try with --sysroot
, to reinstall it.
However, (running from the live system) this fails with
(1/1) checking keys in keyring
error: GPGME error: Invalid crypto engine
(1/1) checking package integrity
error: GPGME error: Invalid crypto engine`
error: pacman: missing required signatures
It then asks me if I want to remove the corrupted cached .pkg.tar.zst
file, but regardless of my answer it then fails.
Ducking this I found some reddit threads with similar problems, however I was unable to really try the solution since pacman-key
also does nothing on the arch-chrooted system.
Installing anything else with pacman --sysroot
fails in the same way, so I decided to turn off signature checking in /etc/pacman.conf
in the live system, but this had no effect on the error I get when trying to install something.