ERRO: não foi possível abrir o diretório /lib/modules/4.2.0-25-generic: Nenhum arquivo ou diretório

2

Eu atualizei o Ubuntu 15.10 para 16.04 e em algum lugar deve ter acontecido o meu problema.

Primeiramente, percebi meu problema quando quis fazer sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT . Lá cheguei:

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.

Ok, então há um problema com /lib/modules/4.2.0-25-generic ...

Então tentei reparar com sudo depmod . Mas eu tenho:

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

Agora eu queria reconstruir o kernel com sudo apt-get install --reinstall linux-... , aqui estavam algumas versões como:

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  

mas não há linux-image-4.2.0-25-generic . Coisa estranha. Então, ao atualizar o Linux, foi configurada a versão antiga e errada do kernel de alguma forma.

Agora quero ver onde esta versão está salva. E a encontrei no comando uname -r . Então apt-get install linux-image-'uname -r'-dbgsym , foi como:

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'

Mas não tenho idéia de como alterar o uname -r à mão. E eu também não sei porque eu tenho essa versão errada. E o mais importante, se for uma boa ideia alterar o uname .

Btw eu uso Digitalocean e atualizei via do-release-upgrade .

Editar # 1

Eu só queria ver meu kernel atual. E é realmente 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

mas o uname ainda diz:

uname -r
4.2.0-25-generic

Alguém pode me explicar o que pode ter acontecido e como resolver?

    
por kwoxer 04.06.2016 / 19:57

2 respostas

1

Eu só precisava definir o kernel no Digitalocean. Agora eu tenho o kernel correto (4.4.0.22) e o iptables também está funcionando.

    
por 09.06.2016 / 08:59
1

Você não pode instalar seu próprio kernel ou módulos de kernel em um VPS. Você deve consultar seu host se você precisa de certos módulos do kernel.

Acho que o módulo filter certamente deve ser incluído.

    
por 04.06.2016 / 20:32