之前在2.6系列linux内核中,当发现某个模块不要在保留内核中加载的时候,可以通过blacklist参数将其在/etc/kdump.conf中屏蔽

blacklist <list of kernel modules>

最近发现某个sas驱动存在问题,所以打算也这么屏蔽,结果,出错了:

  1. [root@localhost ~]# service kdump restart
  2. Redirecting to /bin/systemctl restart kdump.service
  3. Job for kdump.service failed because the control process exited with error code. See "systemctl status kdump.service" and "journalctl -xe" for details.
  4. [root@localhost ~]# systemctl status kdump.service
  5. * kdump.service - Crash recovery kernel arming
  6. Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
  7. Active: failed (Result: exit-code) since Tue -- :: UTC; 10s ago
  8. Process: ExecStop=/usr/bin/kdumpctl stop (code=exited, status=/SUCCESS)
  9. Process: ExecStart=/usr/bin/kdumpctl start (code=exited, status=/FAILURE)
  10. Main PID: (code=exited, status=/FAILURE)
  11.  
  12. Nov :: localhost.localdomain kdumpctl[]: Deprecated kdump config option: blacklist. Refer to kdump.conf manpage for alternatives.
  13. Nov :: localhost.localdomain kdumpctl[]: Starting kdump: [FAILED]
  14. Nov :: localhost.localdomain systemd[]: kdump.service: main process exited, code=exited, status=/FAILURE
  15. Nov :: localhost.localdomain systemd[]: Failed to start Crash recovery kernel arming.
  16. Nov :: localhost.localdomain systemd[]: Unit kdump.service entered failed state.
  17. Nov :: localhost.localdomain systemd[]: kdump.service failed.
  18. [root@localhost ~]# journalctl -xe
  19. Nov :: localhost.localdomain kdumpctl[]: kexec: unloaded kdump kernel
  20. Nov :: localhost.localdomain kdumpctl[]: Stopping kdump: [OK]
  21. Nov :: localhost.localdomain kdumpctl[]: Deprecated kdump config option: blacklist. Refer to kdump.conf manpage for alternatives.
  22. Nov :: localhost.localdomain kdumpctl[]: Starting kdump: [FAILED]
  23. Nov :: localhost.localdomain systemd[]: kdump.service: main process exited, code=exited, status=/FAILURE
  24. Nov :: localhost.localdomain systemd[]: Failed to start Crash recovery kernel arming.
  25. -- Subject: Unit kdump.service has failed
  26. -- Defined-By: systemd
  27. -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  28. --
  29. -- Unit kdump.service has failed.
  30. --
  31. -- The result is failed.
  32. Nov :: localhost.localdomain systemd[]: Unit kdump.service entered failed state.
  33. Nov :: localhost.localdomain systemd[]: kdump.service failed.
  34. Nov :: localhost.localdomain polkitd[]: Unregistered Authentication Agent for unix-process:: (system bus name :1.5128, object path /org/freedesktop/PolicyKit1/AuthenticationAgent
  35. [root@localhost ~]#

发现blacklist是过时的用法了,然后参照提示:

man kdump.conf 看到如下打印:

  1. blacklist option was recently being used to prevent loading modules in initramfs. General terminology for blacklist has been that module is present in initramfs but it is not actu-
  2. ally loaded in kernel. Hence retaining blacklist option creates more confusing behavior. It has been deprecated.
  3.  
  4. Instead, use rd.driver.blacklist option on second kernel to blacklist a certain module. One can edit /etc/sysconfig/kdump.conf and edit KDUMP_COMMANDLINE_APPEND to pass kernel com-
  5. mand line options. Refer to dracut.cmdline man page for more details on module blacklist option.

好吧,按照最新的要求,打算修改/etc/sysconfig/kdump.conf,发现这个文件不存在,当然配置文件路径不是关键,/etc/kdump.conf里面配置也行,

我按照manpage的提示,修改文件名是/etc/sysconfig/kdump,然后修改KDUMP_COMMANDLINE_APPEND这行命令,具体的格式参考:

man  dracut.cmdline

  1. rd.driver.blacklist=<drivername>[,<drivername>,...]
  2. do not load kernel module <drivername>. This parameter can be specified multiple times.
  3.  
  4. rd.driver.pre=<drivername>[,<drivername>,...]
  5. force loading kernel module <drivername>. This parameter can be specified multiple times.
  6.  
  7. rd.driver.post=<drivername>[,<drivername>,...]
  8. force loading kernel module <drivername> after all automatic loading modules have been loaded. This parameter can be specified multiple times.

另外需要注意的是,当修改了配置,就要重启kdump服务,而这个时候,由于修改了blacklist,会导致重启的时候比较慢,因为在涉及到配置文件变动时,如生成路径修改或blacklist内容增加,都需要重新生成kdump的RAM文件,不然其在发生问题时还是使用老的img RAM文件,这类文件在/boot下以kdump.img结尾的文件就是:

  1. [root@localhost ~]# ls -l /boot/*kdump*
  2. -rw------- 1 root root 16878919 Nov 29 01:02 /boot/initramfs-3.10.0-693.5.2.el7.x86_64kdump.img
  3. -rw------- 1 root root 35261890 Nov 27 07:04 /boot/initramfs-3.10.0caq1.0kdump.img
  4. -rw------- 1 root root 36508192 Nov 24 06:21 /boot/initramfs-3.10.0kdump.img
  5. [root@localhost ~]#

最后需要注意的就是,当配置的保留内核在加载驱动或者运行的时候,遇到panic,这个时候就再也没有内核去接管它了,只能在屏幕上打印,或者接串口查看。之前遇到过保留内存不够的

情况下,保留内核自己出现oom了,导致无法收集到crash,查看当前的保留内存可以使用:

[root@localhost ~]# cat /sys/kernel/kexec_crash_size
536870912

查看保留内核是否加载,可以使用:
[root@localhost ~]# cat /sys/kernel/kexec_crash_loaded
1

linux 3.10的kdump配置的小坑的更多相关文章

  1. 在 Mac OS X 10.10 安装 pyenv 的一个小坑

    小记一下. 因为全面转向 Python 3.4 作为主力开发版本,但是手上的 Mac OS X 和服务器上用的都是 Python 2.7,所以需要安装 pyenv. 按其 github 页面的说明,使 ...

  2. Linux:Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21...

    问题: Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21... ...

  3. Linux系统性能10条命令监控

    Linux系统性能10条命令监控 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 p ...

  4. Linux DNS原理简介及配置

    Linux DNS原理简介及配置 DNS简介 DNS原理 域名解析的过程 资源记录 DNS BIND安装配置 一.简介 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访 ...

  5. Linux 4.10中两个新特性与我的一段故事

    今早5点半起来没有開始写文章,而是去西湾红树林连跑带走折腾了将近20公里.回来后就8点多了...洗了个澡之后坐稳当.開始写一段关于我的故事.        在2014年到2015年期间,我在负责研发一 ...

  6. Linux装机利器Cobbler安装配置

     Linux装机利器Cobbler安装配置 2011-05-27 15:31:05 分类: LINUX 一.安装环境 centos 5.4 关掉iptables 关掉 selinux selinux ...

  7. 【转载】Linux 通过mount -o loop 配置本地.iso镜像为yum源(yum仓库)

    原文地址:https://www.jb51.net/os/RedHat/2682_all.html 如果拷贝到本地,可以使用mount mount fileName mountPoint -o loo ...

  8. linux 学习10 shell 基础

    10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...

  9. Linux 6.5網卡配置

    Linux 6.5 網卡配置 路徑:/etc/sysconfig/network-scripts 1.關閉NetworkManager服務 [root@rhcsasm2 network-scripts ...

随机推荐

  1. 【Python3之正则re】

    一.正则re 1.正则表达式定义 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Pytho ...

  2. 从0到1搭建spark集群---企业集群搭建

    今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群. 一.下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hado ...

  3. Push to origin/master was rejected (Git提交错误)

    [问题描述] 在使用Git Push代码的时候,会出现 Push to origin/master was rejected 的错误提示. 在第一次提交到代码仓库的时候非常容易出现,因为初始化的仓库和 ...

  4. Pyqt4的对话框 -- 文件对话框

    文件对话框允许用户选择文件或文件夹,被选择的文件可进行读或写操作 # QInputDialog 文件对话框 # 本示例包含一个菜单栏,一个状态栏和一个被设置为中心部件的文本编辑器. # 状态栏的状态信 ...

  5. es7 await/async解决异步问题

    最近做项目遇到一个问题,前端调用ie浏览器中的ocx的方法去查询数据,查询完之后ocx给一个返回值,然后js将返回值当参数传入到另外的函数中去做数据处理,但是遇到一个问题是前端需要异步去执行这个过程 ...

  6. [转载]MySQL运行状态show status详解

    要查看MySQL运行状态,要优化MySQL运行效率都少不了要运行show status查看各种状态,下面是参考官方文档及网上资料整理出来的中文详细解释,不管你是初学mysql还是你是mysql专业级的 ...

  7. vb代码之-------当窗体BorderStyle属性为0时,添加窗口预览到任务栏

    入吾QQ群183435019 (学习 交流+唠嗑) 有很多时候,我们为了美观,将会自己画一个标题栏,这时候我们会把原来的标题栏取消掉,最简单的方法是吧窗体的BorderStyle设置成为0, 然后自己 ...

  8. 读书笔记《CSS权威指南》

    阅读本书主要目的: 自从学会CSS以来,虽然熟练掌握了其使用方法和技巧,但对其底层的原理和实现并不清晰,阅读本书想进一步系统化的学习和深入研究其本质,对这门前端基础语言从熟练使用到真正理解. 第1章 ...

  9. GNS3的配置

    为了更好的了解协议我决定学习CCNA 安装好GNS3后我们打开 点击设置 先把iso解压,解压完成后倒入 保存结束 然后在输入idlepc get 设备名称 来计算idepc的值 idepc能让我们p ...

  10. CSS3中only-child伪类选择器

    <body> <style type="text/css"> //只对li1设置样式 li:nth-child(1):nth-last-child(1){ ...