web-dev-qa-db-ja.com

エラー:ディレクトリ/lib/modules/4.2.0-25-genericを開けませんでした:そのようなファイルまたはディレクトリはありません

Ubuntu 15.10を16.04にアップグレードしましたが、どこかで問題が発生したはずです。

Sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPTをやりたいと思ったとき、私は最初に私の問題に気づきました。そこで私は得ました:

modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.2.0-25-generic/modules.dep.bin'
modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.2.0-25-generic
iptables v1.6.0: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

はい、/lib/modules/4.2.0-25-generic...に問題があります.

次に、Sudo depmodで修復を試みました。しかし、私は得ました:

depmod: ERROR: could not open directory /lib/modules/4.2.0-25-generic: No such file or directory
depmod: FATAL: could not search modules: No such file or directory

今、私はSudo apt-get install --reinstall linux-...でカーネルを再構築したいと思いました、ここにいくつかのバージョンがありました:

linux-image-3.13.0-24-generic             
linux-image-3.4.0-4-goldfish              
linux-image-4.4.0-21-generic              
linux-image-4.4.0-21-lowlatency           
linux-image-4.4.0-22-generic              
linux-image-4.4.0-22-lowlatency  

linux-image-4.2.0-25-genericはありません。奇妙なこと。したがって、Linuxをアップグレードすることによって、カーネルの古いバージョンと間違ったバージョンがどういうわけか設定されました。

ここで、このバージョンが保存されている場所を確認します。uname -rコマンドで見つけました。つまり、apt-get install linux-image-'uname -r'-dbgsymは次のようになりました。

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-4.2.0-25-generic-dbgsym
E: Couldn't find any package by glob 'linux-image-4.2.0-25-generic-dbgsym'
E: Couldn't find any package by regex 'linux-image-4.2.0-25-generic-dbgsym'

しかし、uname -rを手動で変更する方法はわかりません。また、なぜこの間違ったバージョンを取得したのかもわかりません。そして最も重要なのは、unameを変更するのが適切な場合です。

ところで、Digitaloceanを使用し、do-release-upgrade経由でアップグレードしました。

#1を編集

現在のカーネルを見たかっただけです。そして実際には4.4.0-22です。

Sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-22-generic
Found initrd image: /boot/initrd.img-4.4.0-22-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

しかし、unameはまだ言います:

uname -r
4.2.0-25-generic

誰かが何が起こったのか、そしてどのように解決するのかを私に説明できますか?

3
kwoxer

Digitaloceanでsetkernelを実行する必要がありました。現在、正しいカーネル(4.4.0.22)があり、iptablesも動作しています。 enter image description here

1
kwoxer

独自のカーネルまたはカーネルモジュールをVPSにインストールすることはできません。特定のカーネルモジュールが絶対に必要な場合は、ホストに相談する必要があります。

filterモジュールは確かに含まれるべきだと思います。

2
Julie Pelletier