
啟動 Xubuntu 19.04 時,在 boot.log 中取得以下內容:
[[0;1;31mFAILED[0m] Failed to start [0;1;39mLoad Kernel Modules[0m.
See 'systemctl status systemd-modules-load.service' for details.
我執行 systemctl status systemd-modules-load.service 會產生:
Failed to find module 'nf_nat_proto_gre'
我sudo modprobe nf_nat_proto_gre
得到:
modprobe: FATAL: Module nf_nat_proto_gre not found in directory /lib/modules/5.0.0-16-generic
問題是什麼?
答案1
首先:明顯的問題應該是:需要這個模組嗎?這是為了支援在 NAT 後面使用(可能是多個而不是一個)GRE 隧道。如果不使用 GRE 隧道,這個問題就沒有意義了。
現在發生了什麼事? Ubuntu 19.04 似乎正在使用核心 5.0,並且從該核心開始進行了一些 netfilter 重新設計,以將一些單獨的 netfilter 模組分解回核心(即:不作為模組),以整體增加大小或幫助進一步實現 netfilter 功能。作為此次返工的一部分,該模組被「砍掉」。
path: root/net/ipv4/netfilter/nf_nat_proto_gre.c Age Commit message (Expand) Author Files Lines 2018-12-17 netfilter: nat: remove nf_nat_l4proto struct Florian Westphal 1 -61/+0 2018-12-17 netfilter: nat: remove l4proto->manip_pkt Florian Westphal 1 -41/+0 2018-12-17 netfilter: nat: remove l4proto->nlattr_to_range Florian Westphal 1 -3/+0 2018-12-17 netfilter: nat: remove l4proto->in_range Florian Westphal 1 -1/+0 2018-12-17 netfilter: nat: remove l4proto->unique_tuple
當然功能還是有的。最後提交評論,強調我的:
netfilter: nat: 刪除 nf_nat_l4proto 結構
這將刪除(現在為空)nf_nat_l4proto 結構、其所有實例
以及所有不再需要的運行時(取消)註冊功能。nf_nat_need_gre() 也可以被砍掉:呼叫它的模組(以
載入不再存在的 nat_gre 模組)也會呼叫其他 nat 核心
函式。如果使用 GRE nat 建立內核,GRE nat 現在總是可用。[...]
因此,如果 Ubuntu 有一些要載入的硬編碼的幫助程式模組列表,則該列表不會更新以在相同情況下刪除此模組和其他一些模組。您應該安全地忽略該錯誤,或報告小錯誤。