Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197316
  • 博文数量: 22
  • 博客积分: 1696
  • 博客等级: 上尉
  • 技术积分: 336
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-06 21:22
文章分类

全部博文(22)

文章存档

2011年(4)

2010年(18)

分类: LINUX

2010-09-18 18:56:46

六: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脚本等等。还有很长的路要走......





阅读(2969) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~