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.