我正在尝试修复和升级 Arch Linux 系统。我从 Live USB 启动,这是比原始安装更新的版本。然后我将 sda 和 chroot 安装到其安装点。当我运行时mkinitcpio -p linux
,我从标题中得到错误:
'/lib/modules/4.9.8-1-ARCH' is not a valid kernel module directory
lib/modules/
有4.13.3-1-ARCH。我如何告诉mkinitcpio
使用这个目录呢?
答案1
/boot
问题是我在升级整个系统(包括 Linux 内核)时忘记挂载启动分区。在处理了pacman
PGP 密钥的一些问题后,我终于运行pacman -S filesystem linux
并且能够启动我的硬盘了。 (我不确定是否filesystem
需要解决这个问题,但它在其他来源中被引用。)
答案2
仅供参考,我遇到了类似的问题并仅使用pacman -S linux
.我认为不需要文件系统。
答案3
我遇到了同样的问题,重新安装并pacman -S linux
没有帮助。事实上,错误是在linux-aarch64
首先更新时出现的,因为这会触发mkinitcpio
!
我的问题是,/etc/mkinitcpio.d/linux-aarch64.preset
更新没有替换它,但.pacnew
安装了一个文件。所以预设仍然指向旧的模块目录。将新预设移动到位修复了它:
# mv /etc/mkinitcpio.d/linux-aarch64.preset{.pacnew,}
# pacman -S linux-aarch64