uname -r:4.13.0-16-generic (Ubuntu 17.10 サーバー)
再起動後にiptablesが機能しない問題が発生しました。
iptables-apply /etc/network/iptables
[ ok ] Stopping fail2ban (via systemctl): fail2ban.service.
Applying new iptables rules from '/etc/network/iptables'... modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.13.0-16-generic
iptables-restore v1.6.1: iptables-restore: unable to initialize table 'filter'
Error occurred at line: 3
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
failed.
Error: unknown error applying new iptables rules: /etc/network/iptables
Reverting to old iptables rules... done.
カーネルとiptablesを再インストールしてみました。
apt install --reinstall linux-generic linux-image-4.13.0-16-generic linux-image-extra-4.13.0-16-generic linux-headers-4.13.0-16-generic iptables
再起動せずに再インストールしたときにサービスが再起動された後、iptablesが機能しました。
コンピュータを再起動しましたが、同じエラーが再び発生しました。
再起動するたびに、次のフォルダが消えることを確認しました。
/lib/modules/4.13.0-16-generic/kernel/net/ipv4/netfilter
ipv4 フォルダには gre.ko udp_tunnel.ko ファイルが 2 つだけ残っていました。
見つからないファイルをこの場所にコピーしても効果はなく、次回の再起動時に削除されます。
この問題を解決する方法を知っていますか?
答え1
Ubuntu 16.04でも同じ結果が得られました。解決策はありませんが、なぜこのようなことが起こるのか、ある程度知ることができます。この本の進行中、システムは最初にRAMベースのファイルシステムであるinitramfsから起動します。後で起動プロセス中にハードディスクの代わりになりますが、initramfsのモジュールディレクトリはハードディスクのモジュールディレクトリにマウントされます。の出力にはmount
次の行が含まれます。
copymods on /lib/modules type tmpfs (rw,relatime)
[OK]、たとえば、次のように実行して/lib/modulesを変更します。
sudo apt-get install --reinstall linux-image-$(uname -r)
システムを再起動すると、失われます。それでは、これはどのように機能しますか?コマンドが新しいモジュールを追加した場合は、そのモジュールが存在するapt install
必要があります/usr/share/initramfs-tools/hooks
。その後、apt install
インストーラ実行スクリプトを呼び出すと、initramfsイメージであるupdate-initramfs
CPIOアーカイブが作成されます/boot/initrd.img-(uname -r)
。このアーカイブには、システムの再起動時にiptablesが機能するために必要なモジュールが含まれているはずです。
エラーは、関連エントリが/usr/share/initramfs-tools/hooks
initramfsで実際には生成されないため、システムの再起動時に持続しないことです。
この時点で私は詰まった。
答え2
@scottwh2が述べたように、問題はcopymods
ramfsボリュームです/lib/modules
。mount | grep /lib/modules
それを削除するには、次を実行します。
apt remove cloud-initramfs-copymods
その後、再起動してください。
再起動後、copymods
そのエントリがmount
。
答え3
Ubuntu Server 16.04でも同じ問題が発生しました。注文する:
mount | grep /lib/modules
示す:
copymods on /lib/modules type tmpfs (rw,relatime)
だから私は最初にcloud-initramfs-copymodsを削除しようとしましたが、パッケージは私のシステムにインストールされませんでした。それからインストールしました。
apt-get install cloud-initramfs-copymods
それから削除しました。
apt-get remove cloud-initramfs-copymods
再起動後、サーバーのcopymodsが消え、再起動後もモジュールは削除されません!ありがとうスコットWH2そして偽のポケット私の問題をうまく解決しました。