Điểm:2

Tại sao Nhân Linux của tôi bị thiếu các thư mục/tệp rất quan trọng để ip_tables chạy?

lá cờ in

như đã đề cập trong tiêu đề - Nhân Linux của tôi dường như bị thiếu các tệp/thư mục rất quan trọng để iptables chạy bình thường.Tôi có thể tạm thời giải quyết vấn đề này bằng cách cài đặt lại kernel của mình, nhưng đó không phải là giải pháp vĩnh viễn vì sau khi khởi động lại, tôi quay lại nơi tôi đã bắt đầu.

Khi tôi chạy iptables -L Tôi nhận được thông báo lỗi "Có lẽ iptables hoặc kernel của bạn cần được nâng cấp." Tôi thấy rằng tôi có thể giải quyết lỗi này bằng cách chạy Sudo apt-get install --reinstall linux-modules-5.8.0-59-generic. Tôi nhận thấy rằng sau khi cài đặt lại, tôi có thêm các tệp và thư mục trong /lib/modules/5.8.0-59-generic thư mục, điều này khiến tôi tin rằng hạt nhân của tôi theo mặc định thiếu những thứ này và vô hiệu hóa iptables hoạt động bình thường. Sau khi khởi động lại, nó lại thiếu các tệp/thư mục đã nói và iptables không hoạt động.

Có thể cài đặt lại mô-đun hạt nhân vĩnh viễn để tôi không phải cài đặt lại sau mỗi lần khởi động lại để iptables hoạt động không?

Tôi đang chạy Ubuntu 20.04.2 và như đã đề cập ở trên, kernel của tôi là 5.8.0-59-generic. Tôi đánh giá cao bất kỳ sự trợ giúp nào tôi có thể nhận được!

chỉnh sửa:

Đầu ra tôi nhận được từ ls /boot/vmlinuz* là: [đầu ra vmlinuz]: https://i.stack.imgur.com/dDroe.png HOẶC dưới dạng văn bản:

/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 -chung /boot/vmlinuz.old

Và đầu ra tôi nhận được từ chính sách apt-cache linux-image-generic là: [đầu ra apt-cache]: https://i.stack.imgur.com/OY9Cj.png HOẶC dưới dạng văn bản:

linux-image-generic: Đã cài đặt: 5.4.0.77.80 Ứng viên: 5.4.0.77.80 Bảng phiên bản: *** 5.4.0.77.80 500 500 http://archive.ubuntu.com/ubuntufocal-updates/main amd64 Gói 500 http://archive.ubuntu.com/ubuntufocal-security/main amd64 Gói 100 /var/lib/dpkg/status 5.4.0.26.32 500 500 http://archive.ubuntu.com/ubuntufocal/main gói amd64

Máy tính đang chạy là Dell Optiplex 3020 với thông số kỹ thuật là:

  • CPU: CPU lõi tứ Intel(R) Core(TM) i5-4570 @ 3,20 GHz
  • RAM: ram 8Gb

chỉnh sửa: Tôi không chắc đầu ra từ các lệnh này sẽ giúp tôi như thế nào và tôi thực sự đánh giá cao hướng dẫn thêm vì tôi vẫn chưa thể giải quyết được vấn đề này!

vidarlo avatar
lá cờ ar
Vui lòng [chỉnh sửa] bài đăng của bạn để bao gồm đầu ra của `ls /boot/vmlinuz*` và `apt-cache policy linux-image-generic`.
Michael Hampton avatar
lá cờ cz
Vui lòng mô tả máy tính mà bạn đang chạy Ubuntu.
Landon Miller avatar
lá cờ in
Cảm ơn câu trả lời của bạn, @vidarlo và Michael Hampton! Tôi đã cập nhật bài đăng của mình, vì vậy hy vọng các bạn có thể hỗ trợ nhiều hơn!
vidarlo avatar
lá cờ ar
@LandonMiller Vui lòng không dán văn bản dưới dạng hình ảnh, dán văn bản dưới dạng văn bản và định dạng văn bản bằng nút `{}`.
Landon Miller avatar
lá cờ in
Tôi đã chỉnh sửa bài đăng của mình để bao gồm đầu ra dưới dạng văn bản @vidarlo. Tôi thực sự đánh giá cao sự giúp đỡ của bạn!
lá cờ mm
Tôi gặp vấn đề tương tự như @LandonMiller, vào ngày 20.04.4 LTS (tiêu điểm)
Landon Miller avatar
lá cờ in
@Titou Tôi đã đăng những gì tôi phải làm để giải quyết vấn đề. Có thể thử điều đó và xem nếu nó hoạt động?
Điểm:1
lá cờ no

Hạt nhân mà bạn đang khởi động không phải là hạt nhân mà bạn đã cài đặt. Nói tóm lại, các mô-đun mà bạn đã cài đặt là dành cho một nhân khác - có thể cũ hơn hoặc mới hơn, do bộ tải khởi động chọn, có thể chưa được cập nhật.

Bạn có thể xác minh điều này với mèo /proc/phiên bản. Điều này sẽ hiển thị kernel hiện đang chạy. cài đặt apt --reinstall linux-modules-`cut -d\ -f3 /proc/version` nên cài đặt đúng phiên bản.

Bạn có thể dùng dpkg -l|grep linux- để xem những gì được cài đặt.

Đối với việc khiến bộ tải khởi động ngừng khởi động lại vào cùng một phiên bản cũ, cập nhật sudo-grub có thể giải quyết điều đó. Ngoài ra, bạn có thể xem /boot/grub/grub.cfg để biết thêm thông tin, hoặc giữ Sự thay đổi hoặc nhấn THOÁT khi khởi động và chọn kernel thích hợp. (Nhìn thấy https://askubuntu.com/questions/281119/how-do-you-run-update-grub để khắc phục sự cố nhiều hơn)

Mặc dù Linux tuân theo thiết kế "nguyên khối" trong đó hầu hết các chức năng có thể được tích hợp vào chính nhân, nhưng ngày nay có quá nhiều chức năng khả dụng đến mức sẽ hợp lý hơn khi chuyển phần lớn chức năng đó - chẳng hạn như iptables - ra thành "các mô-đun nhân có thể tải được “. Nó có một tính năng tuyệt vời là nó "tự động tải" các mô-đun này khi cần - nhưng các mô-đun này thường rất cụ thể đối với phiên bản kernel - và nó không tìm thấy những mô-đun đó - xem ls /usr/lib/mô-đun/* - là những gì đã cho bạn thông báo lỗi.

Bạn có thể xem những mô-đun hiện đang được tải lsmod. Bạn cũng có thể tải các mô-đun với insmod và dỡ chúng với rmmod. (Nhìn thấy người đàn ông và như thế.)

Máy tính đã thay đổi rất nhiều trong 30 năm qua, thay vì chỉ lưu trữ các mô-đun trên phân vùng chính, chúng cần được lưu trữ trong một đĩa RAM tạm thời ban đầu bởi vì đôi khi những mô-đun đó là cần thiết để truy cập vào ổ cứng hoặc hệ thống tệp thực tế. cập nhật-grub đảm nhiệm việc lưu trữ các bản sao của các mô-đun được yêu cầu trong các tệp có liên quan ban đầu cho các nhân Linux có liên quan.

Nói chung, miễn là hạt nhân có thể đọc hệ thống tệp gốc của bạn bằng cách nào đó, bạn có thể khởi động bất kỳ hệ thống tệp gốc Linux nào bằng bất kỳ hạt nhân nào. Vì vậy, bạn thường có thể dễ dàng sửa chữa - hoặc sao lưu hệ thống của mình bằng cách khởi động từ Linux có khả năng khởi động trực tiếp, sau đó cài đặt hệ thống tệp chính của bạn. (Để tìm nó, hãy xem lsblkgắn kết) Để hoạt động trên hệ thống thực tế của bạn mặc dù bạn đã khởi động từ một hệ thống khác, hãy xem chroot. Ví dụ: nếu bạn khởi động trực tiếp và ổ cứng của bạn hiển thị là /dev/sdb1 sau đó bạn có thể fsck/dev/sdb và sau đó gắn kết/dev/sdb1/mnt, và sau đó sudo mount -t proc - /mnt/sdb1/proc; Sudo mount -o liên kết /dev /mnt/sdb1/dev; Sudo chroot /mnt/sdb1 và sau đó bạn có thể chạy cài đặt apt hoặc cập nhật-grublối rakhởi động lại sudo.)

Các tệp có thể bị hỏng hoặc bị thiếu do nhiều yếu tố - dung lượng ổ đĩa thấp, dây cáp bị lỏng, phần cứng bị hỏng, mất điện, EMF, tia vũ trụ. Phần mềm hiện đại rất tốt trong việc giải quyết phần lớn điều này. Điều tuyệt vời về Linux trái ngược với các hệ thống khác là nó mang lại cho bạn nhiều cơ hội hơn để sửa chữa thay vì chỉ cài đặt lại - và tìm hiểu thêm về cách thức hoạt động của nó trong quy trình.

lá cờ mm
Câu trả lời chính xác. Tôi đồng ý với thực tế là việc sửa chữa nên có thêm kiến ​​​​thức.
Điểm:0
lá cờ in

Đối với @Titou... Tôi nghĩ rằng tôi gặp phải lỗi này do kernel bị hỏng?? Tôi đã giải quyết vấn đề bằng cách sao lưu và cài đặt lại hệ điều hành Ubuntu. Sau khi làm điều này, tôi đã không gặp vấn đề gì kể từ đó.

lá cờ no
Bị hỏng - hoặc bị thiếu - "mô-đun hạt nhân". Đối với việc sao lưu, bạn chỉ cần sao lưu nếu bạn đang định dạng lại - đây không phải là ý tưởng tồi nếu bạn có một hệ thống tệp bị hỏng và `fsck` không thể sửa được.Nếu bạn thực hiện sao lưu, điều thú vị về Linux là bạn chỉ phải sao lưu `/home`. Trừ khi bạn đang lưu trữ các trang web và cơ sở dữ liệu, trong trường hợp đó, cấu hình nằm trong `/etc` và dữ liệu trong `/var`. Nếu bạn có hình ảnh docker, tốt nhất là xuất chúng vì chỉ sao lưu `/var/lib/docker` sẽ sử dụng nhiều dung lượng gấp nhiều lần so với hình ảnh thực tế, vì có thể không giữ được bản sao.
lá cờ mm
Cảm ơn vì giải pháp!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.