- 论坛徽章:
- 0
|
升级至2.6.7,iptables错误
[回复夕水兄]关于内核升级到2.6.5中关于iptables failed的问题
夕水兄提到的问题中,没有详细说明是在哪个内核版本下升级导致的问题。
但就问题来看,大部分情况下,应该是从2.4.X升级到2.6.X。下面就对从
2.4.X的环境下升级到2.6.X的iptables failed的问题,简单的说明一
下,文中不对的地方请夕水兄和其它朋友指出,谢谢!
由于2.6.X内核与2.4.X内核相比较而言,有了非常大的变动。详细的情况
可以在我的小站中有篇题为《2.6内核的精彩世界》文章中获取。这些变化
中可能与问题密切相关的就是模块加载机制发生了很大的变化。如果
module-init-tools的版本不能满足的话,就必须升级module-init-tools。
否则的话,模块在新的内核下,就无法正常的加载。而这个问题的出现很有可能
就是因为module-init-tools的版本不能满足,并且在内核配置选项net filter
configuration 中配置为以模块的方式加载。
解决问题的办法就是升级module-init-tools,当然你也可以把它编译进内核。:)
关于如何升级,网上资料多的是,可以在网上搜索一下。这里,还要提醒的是,如果是在rh9环境下升级的话,
除了要以上的升级之外,还有个文件(/etc/rc.d/rc.sysinit)可能有缺陷,
因为/proc/ksyms文件在新内核(kernel2.6.X)中已经没有了,打开文件命令如下:
#vi /etc/rc.d/rc.sysinit
找到:
if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>;/dev/null && [ -f /proc/ksyms ]; then
USEMODULES=y
fi
替换成:
if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>;/dev/null; then
USEMODULES=y
fi
也就是把“&& [ -f /proc/ksyms ]”去掉,保存文件
(操作之前最好做备份以免删错,这个文件是系统初始脚本,重要的很),
这样子内核才能加载模块,当然能启动iptable防火墙了,否则防火墙在新内核中启动时红色的“failed“非常醒目。:)
(请在新内核中核查/proc/sys/kernel/modprobe中的内容是不是: /sbin/modprobe,也可手工注入指令:#echo "/sbin/modprobe" >; /proc/sys/kernel/modprobe)。
下面开始构造新内核,问题应该会解决的。 |
|