Puncte:2

De ce Kernel-ul meu Linux are directoare/fișiere lipsă care sunt cruciale pentru rularea ip_tables?

drapel in

așa cum se menționează în antet - Kernel-ul meu Linux pare să lipsească fișiere / directoare care sunt cruciale pentru ca iptables să ruleze corect.Pot să rezolv temporar acest lucru reinstalând nucleul meu, dar nu este o soluție permanentă, deoarece după o repornire mă întorc la locul de unde am început.

Când alerg iptables -L Primesc o eroare care spune: „Poate că iptables sau kernel-ul tău trebuie să fie actualizat.” Am descoperit că pot rezolva această eroare rulând sudo apt-get install --reinstall linux-modules-5.8.0-59-generic. Am observat că după reinstalare am fișiere și directoare suplimentare în mine /lib/modules/5.8.0-59-generic director, ceea ce mă face să cred că nucleul meu în mod implicit lipsește acestea și dezactivează iptables să funcționeze corect. După o repornire, se întoarce la lipsa acestor fișiere/directoare și iptables care nu funcționează.

Este posibil să reinstalez modulul de kernel permanent, deci nu trebuie să reinstalez după fiecare repornire pentru ca iptables să funcționeze?

Rulez Ubuntu 20.04.2 și, așa cum am menționat mai sus, nucleul meu este 5.8.0-59-generic. Apreciez orice ajutor pot primi!

Editați | ×:

Ieșirea de la care primesc ls /boot/vmlinuz* este: [ieșire vmlinuz]: https://i.stack.imgur.com/dDroe.png SAU ca text:

/boot/vmlinuz /boot/vmlinuz-5.4.0-77-generic /boot/vmlinuz-5.8.0-48-generic /boot/vmlinuz-5.8.0-55-generic /boot/vmlinuz-5.8.0-59 -generic /boot/vmlinuz.old

Și producția de la care am politica apt-cache linux-image-generic este: [ieșire apt-cache]: https://i.stack.imgur.com/OY9Cj.png SAU ca text:

linux-image-generic: Instalat: 5.4.0.77.80 Candidat: 5.4.0.77.80 Tabel versiuni: *** 5.4.0.77.80 500 500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Pachete 500 http://archive.ubuntu.com/ubuntu focal-security/main amd64 Pachete 100 /var/lib/dpkg/status 5.4.0.26.32 500 500 http://archive.ubuntu.com/ubuntu focal/main Pachete amd64

Computerul care rulează este un Dell Optiplex 3020 cu specificații de:

  • CPU: CPU Quad Core Intel(R) Core(TM) i5-4570 la 3,20 GHz
  • RAM: 8Gb ram

edit: Nu sunt sigur cum mă va ajuta rezultatul acestor comenzi și aș aprecia cu adevărat îndrumări suplimentare, deoarece încă nu sunt aproape de rezolvarea acestui lucru!

vidarlo avatar
drapel ar
Vă rugăm să [editați] postarea pentru a include rezultatul `ls /boot/vmlinuz*` și `politica apt-cache linux-image-generic`.
Michael Hampton avatar
drapel cz
Vă rugăm să descrieți computerul pe care rulați Ubuntu.
Landon Miller avatar
drapel in
Vă mulțumim pentru răspunsuri, @vidarlo și Michael Hampton! Mi-am actualizat postarea, așa că sper că puteți ajuta mai mult!
vidarlo avatar
drapel ar
@LandonMiller Vă rugăm să nu lipiți text ca imagini, inserați-l ca text și formatați-l cu butonul `{}`.
Landon Miller avatar
drapel in
Mi-am editat postarea pentru a include rezultatul ca text @vidarlo. Apreciez foarte mult ajutorul tău!
drapel mm
Am aceeași problemă ca @LandonMiller, pe 20.04.4 LTS (focal)
Landon Miller avatar
drapel in
@Titou Am postat ce a trebuit să fac pentru a rezolva problema. Poate incearca asta si vezi daca merge?
Puncte:1
drapel no

Nucleul cu care porniți nu este cel pe care l-ați instalat. Pe scurt, modulele pe care le-ați instalat sunt pentru un alt nucleu - posibil mai vechi sau mai nou, așa cum a fost selectat de bootloader, care probabil nu a fost actualizat.

Puteți verifica acest lucru cu cat /proc/version. Aceasta va afișa nucleul care rulează în prezent. apt install --reinstall linux-modules-`cut -d\ -f3 /proc/version` ar trebui să instaleze versiunea corectă.

Poți să folosești dpkg -l|grep linux- pentru a vedea ce este instalat.

În ceea ce privește ca bootloader-ul să nu mai repornească în aceeași versiune veche, sudo update-grub ar putea rezolva asta. Alternativ, puteți vizualiza /boot/grub/grub.cfg pentru mai multe informații, sau țineți Schimb sau apăsați ESC la pornire și selectați nucleul corespunzător. (Vedea https://askubuntu.com/questions/281119/how-do-you-run-update-grub pentru mai multe depanare)

Chiar dacă Linux urmează un design „monolitic” în care majoritatea funcționalității pot fi încorporate în nucleul însuși, există atât de multe funcționalități disponibile în zilele noastre încât este mai logic să mutați cât mai mult din această funcționalitate - cum ar fi iptables - în „module de nucleu încărcate ". Are o caracteristică grozavă în care „încarcă automat” aceste module după cum este necesar - dar aceste module sunt de obicei foarte specifice versiunii de kernel - și nu le găsește - vezi ls /usr/lib/modules/* - este ceea ce ți-a dat mesajul de eroare.

Puteți vedea cu ce module sunt încărcate în prezent lsmod. De asemenea, puteți încărca module cu insmod si le descarca cu rmmod. (Vedea om insmod și așa mai departe.)

Calculatoarele s-au schimbat atât de mult în ultimii 30 de ani, încât în ​​loc să stocheze modulele pe partiția principală, acestea trebuie să fie stocate pe un disc RAM temporar initrd deoarece uneori acele module sunt necesare pentru a accesa hard disk-ul sau sistemul de fișiere real. update-grub se ocupă de stocarea copiilor modulelor necesare în documentele relevante initrd pentru nucleele Linux relevante.

În general, atâta timp cât un nucleu poate citi sistemul de fișiere rădăcină cumva, puteți porni orice sistem de fișiere rădăcină Linux folosind orice nucleu. Deci, de obicei, puteți repara cu ușurință - sau face backup pentru sistemul dvs. pornind de pe un Linux bootabil live, apoi instalând sistemul de fișiere principal. (Pentru a-l găsi vezi lsblk și montură) Pentru a lucra pe sistemul dvs. actual, chiar dacă ați pornit de pe altul, vedeți chroot. De exemplu, dacă porniți în timp real și hard disk-ul apare ca /dev/sdb1 atunci poti fsck /dev/sdb și apoi montați /dev/sdb1 /mnt, și apoi sudo mount -t proc - /mnt/sdb1/proc; sudo mount -o bind /dev /mnt/sdb1/dev; sudo chroot /mnt/sdb1 și apoi poți fugi instalare apt sau update-grub și Ieșire și sudo reboot.)

Fișierele pot fi corupte sau lipsă din cauza multor factori - spațiu redus pe disc, cabluri slăbite, hardware deteriorat, întreruperi de curent, EMF, raze cosmice. Software-ul modern este bun la o mare parte din acest lucru. Lucrul grozav despre Linux, spre deosebire de alte sisteme, este că vă oferă mult mai multe oportunități de a-l repara, spre deosebire de simpla reinstalare - și de a afla mai multe despre cum funcționează în acest proces.

drapel mm
Răspuns grozav. Sunt de acord cu faptul că repararea ar trebui să vină cu cunoștințe suplimentare.
Puncte:0
drapel in

Pentru @Titou... Cred că aveam această eroare din cauza unui nucleu corupt?? Am rezolvat problema făcând copii de rezervă și reinstalând sistemul de operare Ubuntu. După ce am făcut asta, nu am mai avut nicio problemă de atunci.

drapel no
„Module kernel” corupte – sau lipsă. În ceea ce privește backupul, ar trebui să aveți nevoie să faceți backup doar dacă reformatați - ceea ce nu este o idee rea dacă aveți un sistem de fișiere corupt și `fsck` nu îl poate repara.Dacă faceți backup, lucrul plăcut despre Linux este că trebuie doar să faceți backup `/home`. Cu excepția cazului în care găzduiți site-uri web și baze de date, caz în care configurația este în `/etc` și datele în `/var`. Dacă aveți imagini docker, cel mai bine le exportați, deoarece doar efectuarea unei copii de rezervă pentru `/var/lib/docker` va folosi de mai multe ori mai mult spațiu decât imaginile reale, deoarece deduplicarea ar putea să nu fie păstrată.
drapel mm
Multumesc pentru solutie!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.