六:Kdump一些琐碎的东西
Kdump讲的差不多了,还有一些琐碎的东西要说。首先就是blacklist这个Feature:
查看/sbin/mkdumprd这个文件,可以看到很多函数。先说明一下,/sbin/mkdumprd是个shell的脚本,如果对脚本不熟悉的话,可能难以理解。Shell在Linux下是非常非常强大的,这是后话了,先看看这个函数:
do_blacklist()
{
local modName=$1
if echo "$modName" | grep -q "\/" ; then
local dirName="/lib/modules/$kernel/$modName"
find $dirName -xtype f -exec basename {} \; | sed "s/^\(.*\).ko/blacklist \1/g" >> $MNTIMAGE/etc/blacklist-kdump.conf
else
echo "blacklist $modName" >> $MNTIMAGE/etc/blacklist-kdump.conf
fi
}
这个函数就是实现blacklist这个Feature的。这个Feature的大致目的就是,如果你不希望一些内核模块在Crash Kernel中被加载的话,可以在/etc/kdump.conf添加这样一行:blacklist iwl3945
这里用的是iwl3945,我的是Intel Corporation PRO/Wireless 3945ABG的无线网卡,我不想在Crash Kernel中加载iwl3945的内核模块,就可以像上面那样写在/etc/kdump.conf中,blacklist这个配置的例子在Yum安装的时候,是没有写在默认的配置文件之中的,而且在System-config-kdump之中更别提这些Feature了。所以建议大家使用配置文件来进行Linux的配置。
举iwl3945这个例子是源于一个Bug,遇到过一个Bug,是因为iwl3945这个模块导致Crash Kernel无法启动,禁用这个模块就可以正常启动了。当然了,这个Bug已经被Upstream修复了!
另外的一个琐碎的东西是default选项。这个选项其实并不只有shell reboot halt选项的,通过这段代码就能看出来:
default)
DEFAULT_ACTION=$config_val
case $DEFAULT_ACTION in
reboot|shell)
FINAL_ACTION="reboot -f"
;;
halt)
FINAL_ACTION="halt -f"
;;
poweroff)
FINAL_ACTION="poweroff -f"
;;
esac
;;
其实还有poweroff这个选项的。当然了,你还能做的更多,比如说手动添加一个启动到Single的模式!看吧,这就是看源码的好处,总能有很多新的发现^_^
Kdump的学习差不多就这些了,当然还有更多更多的深层次的东西,比如说kexec的机制、mkdumprd脚本等等。还有很长的路要走......
阅读(2958) | 评论(0) | 转发(3) |