web-dev-qa-db-ja.com

'/lib/modules/4.9.8-1-Arch'は有効なカーネルモジュールディレクトリではありません

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に指示するにはどうすればよいですか?

4
Code-Guru

問題は、Linuxカーネルを含むシステム全体をアップグレードしたときに、ブートパーティションを/bootにマウントするのを忘れたことです。 pacmanとPGPキーのいくつかの問題に対処した後、ようやくpacman -S filesystem linuxを実行し、HDDから起動できるようになりました。 (この問題を修正するためにfilesystemが必要かどうかはわかりませんが、他のソースで参照されていました。)

8
Code-Guru

ちょうどfyi、私は同様の問題があり、pacman -S linux。ファイルシステムが必要だったとは思いません。

5
StarkETH

同じ問題が発生し、_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
_
2
ben navigator