uname -r:4.13.0-16-generic(ubuntu 17.10 server)
再起動後に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に残っているファイルは次の2つだけです。
gre.koudp_tunnel.ko
不足しているファイルをこの場所にコピーすることはできません。次回の再起動時に削除されます。
これを修正する方法はありますか?
承認された回答:
Ubuntu16.04でも同じことがわかります。修正はありませんが、なぜこれが発生しているのかについてはある程度の洞察があります。ブックプロセス中、システムは最初にRAMベースのファイルシステムinitramfsで起動します。ブートプロセスの後半でハードディスクが引き継ぎますが、initramfsのmodulesディレクトリはハードディスクのmodulesディレクトリにマウントされます。 mount
の出力に注意してください 次の行が含まれます:
copymods on /lib/modules type tmpfs (rw,relatime)
さて、/ lib / modulesへの変更(例:実行することで
sudo apt-get install --reinstall linux-image-$(uname -r)
システムを再起動すると失われます。では、これはどのように機能するのでしょうか?さて、apt install
のとき コマンドは新しいモジュールを追加します。対応するエントリを/usr/share/initramfs-tools/hooks
に配置する必要があります 。次に、apt install
するインストーラースクリプト 実行を呼び出しますupdate-initramfs
、CPIOアーカイブ/boot/initrd.img-(uname -r)
を生成します これはinitramfsイメージであり、システムの再起動時にiptablesが機能するために必要なモジュールが含まれているはずです。
バグは、関連するエントリが実際には/usr/share/initramfs-tools/hooks
に作成されないことです。 、したがって、関連するエントリはinitramfsに作成されないため、システムの再起動時に保持されません。
この時点で私は立ち往生しています。