linux 3.10的kdump配置的小坑
之前在2.6系列linux内核中,当发现某个模块不要在保留内核中加载的时候,可以通过blacklist参数将其在/etc/kdump.conf中屏蔽
blacklist <list of kernel modules>
最近发现某个sas驱动存在问题,所以打算也这么屏蔽,结果,出错了:
[root@localhost ~]# service kdump restart
Redirecting to /bin/systemctl restart kdump.service
Job for kdump.service failed because the control process exited with error code. See "systemctl status kdump.service" and "journalctl -xe" for details.
[root@localhost ~]# systemctl status kdump.service
* kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue -- :: UTC; 10s ago
Process: ExecStop=/usr/bin/kdumpctl stop (code=exited, status=/SUCCESS)
Process: ExecStart=/usr/bin/kdumpctl start (code=exited, status=/FAILURE)
Main PID: (code=exited, status=/FAILURE) Nov :: localhost.localdomain kdumpctl[]: Deprecated kdump config option: blacklist. Refer to kdump.conf manpage for alternatives.
Nov :: localhost.localdomain kdumpctl[]: Starting kdump: [FAILED]
Nov :: localhost.localdomain systemd[]: kdump.service: main process exited, code=exited, status=/FAILURE
Nov :: localhost.localdomain systemd[]: Failed to start Crash recovery kernel arming.
Nov :: localhost.localdomain systemd[]: Unit kdump.service entered failed state.
Nov :: localhost.localdomain systemd[]: kdump.service failed.
[root@localhost ~]# journalctl -xe
Nov :: localhost.localdomain kdumpctl[]: kexec: unloaded kdump kernel
Nov :: localhost.localdomain kdumpctl[]: Stopping kdump: [OK]
Nov :: localhost.localdomain kdumpctl[]: Deprecated kdump config option: blacklist. Refer to kdump.conf manpage for alternatives.
Nov :: localhost.localdomain kdumpctl[]: Starting kdump: [FAILED]
Nov :: localhost.localdomain systemd[]: kdump.service: main process exited, code=exited, status=/FAILURE
Nov :: localhost.localdomain systemd[]: Failed to start Crash recovery kernel arming.
-- Subject: Unit kdump.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit kdump.service has failed.
--
-- The result is failed.
Nov :: localhost.localdomain systemd[]: Unit kdump.service entered failed state.
Nov :: localhost.localdomain systemd[]: kdump.service failed.
Nov :: localhost.localdomain polkitd[]: Unregistered Authentication Agent for unix-process:: (system bus name :1.5128, object path /org/freedesktop/PolicyKit1/AuthenticationAgent
[root@localhost ~]#
发现blacklist是过时的用法了,然后参照提示:
man kdump.conf 看到如下打印:
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-
ally loaded in kernel. Hence retaining blacklist option creates more confusing behavior. It has been deprecated. 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-
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
rd.driver.blacklist=<drivername>[,<drivername>,...]
do not load kernel module <drivername>. This parameter can be specified multiple times. rd.driver.pre=<drivername>[,<drivername>,...]
force loading kernel module <drivername>. This parameter can be specified multiple times. rd.driver.post=<drivername>[,<drivername>,...]
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结尾的文件就是:
[root@localhost ~]# ls -l /boot/*kdump*
-rw------- 1 root root 16878919 Nov 29 01:02 /boot/initramfs-3.10.0-693.5.2.el7.x86_64kdump.img
-rw------- 1 root root 35261890 Nov 27 07:04 /boot/initramfs-3.10.0caq1.0kdump.img
-rw------- 1 root root 36508192 Nov 24 06:21 /boot/initramfs-3.10.0kdump.img
[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配置的小坑的更多相关文章
- 在 Mac OS X 10.10 安装 pyenv 的一个小坑
小记一下. 因为全面转向 Python 3.4 作为主力开发版本,但是手上的 Mac OS X 和服务器上用的都是 Python 2.7,所以需要安装 pyenv. 按其 github 页面的说明,使 ...
- 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... ...
- Linux系统性能10条命令监控
Linux系统性能10条命令监控 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 p ...
- Linux DNS原理简介及配置
Linux DNS原理简介及配置 DNS简介 DNS原理 域名解析的过程 资源记录 DNS BIND安装配置 一.简介 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访 ...
- Linux 4.10中两个新特性与我的一段故事
今早5点半起来没有開始写文章,而是去西湾红树林连跑带走折腾了将近20公里.回来后就8点多了...洗了个澡之后坐稳当.開始写一段关于我的故事. 在2014年到2015年期间,我在负责研发一 ...
- Linux装机利器Cobbler安装配置
Linux装机利器Cobbler安装配置 2011-05-27 15:31:05 分类: LINUX 一.安装环境 centos 5.4 关掉iptables 关掉 selinux selinux ...
- 【转载】Linux 通过mount -o loop 配置本地.iso镜像为yum源(yum仓库)
原文地址:https://www.jb51.net/os/RedHat/2682_all.html 如果拷贝到本地,可以使用mount mount fileName mountPoint -o loo ...
- linux 学习10 shell 基础
10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...
- Linux 6.5網卡配置
Linux 6.5 網卡配置 路徑:/etc/sysconfig/network-scripts 1.關閉NetworkManager服務 [root@rhcsasm2 network-scripts ...
随机推荐
- Python的可变类型与不可变类型
Python基础知识,自己写一写比较不容易忘 Python的每个对象都分为可变和不可变,主要的核心类型中,数字.字符串.元组是不可变的,列表.字典是可变的. 对不可变类型的变量重新赋值,实际上是重新创 ...
- 一步步实现滑动验证码,Java图片处理关键代码
最近滑动验证码在很多网站逐步流行起来,一方面对用户体验来说,比较新颖,操作简单,另一方面相对图形验证码来说,安全性并没有很大的降低.当然到目前为止,没有绝对的安全验证,只是不断增加攻击者的绕过成本. ...
- Javascript一句代码实现JS字符串去除重复字符
需求: 原字符串:abcdabecd 去重后字符串:abcde JS字符串去重,一个简单需求,网上找案例发现都是一大堆代码,对于强迫症的我 实再无法忍受,于是自己手动写出一段代码,完美解决该问题. 代 ...
- [TLSR8266] 1、搭建tlsr8266编译框架在win服务器中
前言 泰凌微TLSR8266蓝牙芯片的开发环境在win桌面系统中搭建起来比较简单,在其论坛SDK版块->Telink IDE中可以找到安装包,直接安装即可生成基于Eclipse的开发环境,及相关 ...
- 命令行替代工具 - Cmder配置
Cmder 可搭配使用cmd here ( cmdhere.reg ) 1. 修改config\aliases文件:添加下列几行 l=ls --show-control-chars la=ls - ...
- java数据结构与算法(一)
1.数据结构概念 所谓的数据结构是数据之间的关系,都是为了提高程序效率而设计的. 分为逻辑关系和物理关系两种. 逻辑关系:人为的一种逻辑思维的认为. (1)集合:在一个范围内有多个数据,数据之间没有关 ...
- 【ASP.NET Core分布式项目实战】(三)整理IdentityServer4 MVC授权、Consent功能实现
本博客根据http://video.jessetalk.cn/my/course/5视频整理(内容可能会有部分,推荐看源视频学习) 前言 由于之前的博客都是基于其他的博客进行开发,现在重新整理一下方便 ...
- time模块、装饰器、类的装饰器
python time模块 导入模块: import time #time模块是python中最基本的模块之一 输出时间戳:time.time() #可以用变量接收,要打印出来要用print(),如 ...
- 请求库-request使用
# -*- coding: utf-8 -*- import requests from urllib.parse import urlencode # python模仿百度搜索引擎 # keywor ...
- POJ 1804 Brainman(5种解法,好题,【暴力】,【归并排序】,【线段树单点更新】,【树状数组】,【平衡树】)
Brainman Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10575 Accepted: 5489 Descrip ...