Linux

錯誤:無法打開目錄/lib/modules/4.2.0-25-generic:沒有這樣的文件或目錄

  • June 9, 2016

我將 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

有人可以解釋一下可能發生了什麼以及如何解決嗎?

我只需要在Digitalocean中**設置****核心。**現在我有了正確的核心(4.4.0.22)並且 iptables 也可以工作了。 在此處輸入圖像描述

您不能在 VPS 上安裝自己的核心或核心模組。如果您絕對需要某些核心模組,您應該諮詢您的主機。

我認為該filter模組當然應該包括在內。

引用自:https://serverfault.com/questions/780980