'/lib/modules/4.9.8-1-ARCH' is not a valid kernel module directory

The problem is that I forgot to mount my boot partition to /boot when I upgraded my entire system, including the Linux kernel. After dealing with some issues with pacman and PGP keys, I finally ran pacman -S filesystem linux and I am able to boot off of my HDD. (I'm not sure if filesystem was required to fix this problem, but it was referenced in other sources.)


Just fyi, I had a similar issue and fixed it with just pacman -S linux. I don't think filesystem was needed.


I had the same issue and reinstalling with pacman -S linux did not help. In fact the error appeared when updating linux-aarch64 in the first place because that triggers the post-transaction hook for mkinitcpio!

The problem in my case was that /etc/mkinitcpio.d/linux-aarch64.preset was not replaced by the update but a .pacnew file was installed. So the preset still pointed to the old modules directory. Moving the new preset in place fixed it:

# mv /etc/mkinitcpio.d/linux-aarch64.preset{.pacnew,}
# pacman -S linux-aarch64