kdump开机报错

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux在启动的时候提示说memory for crash kernel(0*0 to 0*0)notwithin permissible range

解决办法:

这个信息由于没有配置kdump服务的原因,并没有什么危害可以忽略。

kdump是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。

方法一,在图形模式下配置:

我们可以采用下面的图形界面进行配置和启用,步骤如下:

----配置kdump。

选择菜单“Applications”——“system tools”——“kdump”,弹出“Kernel Dump Configuration”窗口,选中Enable kdump,设置New kdump Memory(MB): 128MB(推荐大小)

----重新启动系统。

方法二:编辑/etc/grub.conf,在内核行的末尾添加crashkernel=128@16M。举例:

kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M

修改之后,重启系统。128M内存(从16M开始)不被正常的系统使用,为捕获内核保留。

现在,保留内存已经设置了,打开kdump初始脚本,启动服务:

# chkconfig kdump on

# service kdump start

安装kdump服务:

kexec是一个快速启动机制,允许通过已经运行的内核的上下文启动一个Linux 内核,不需要经过BIOS。BIOS可能会消耗很多时间,特别是带有众多数量的外设的大型服务器。这种办法可以为经常启动机器的开发者节省很多时间。kdump是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。

第一个内核保留了内存的一部分,第二个内核可以用来启动。注意,在启动时,kdump保留了一定数量的重要的内存,这改变了紅帽企业Linux 5最小内存需求。为了计算系统需要的真正最小内存,可以参看

/rhel/details/limits/ 上列出的最小内存需求,加上kdump使用的内存数量,以决定真正的最小内存的需求。

因为第一个内核的内存内容已经被保留,所以kexec可以不经过BIOS,启动捕获内核。这是内核崩溃转储的根本。

怎样配置kdump

1.确认kexec-tools已经安装:

#rpm -q kexec-tools

2.配置/etc/kdump.conf文件,指定vmcore将被转储的路径。可以通过scp拷贝到另一个服务器,也可以是裸设备,或者本地的文件系统。

3.修改一些启动参数,为捕获很保留一块内存。对于i386和x86_64架构,编辑/etc/grub.conf,在内核行的末尾添加 crashkernel=128@16M。

下面是一个带有kdump选项的/etc/grub.conf文件:

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You do not have a /boot partition. This means that

# all kernel and initrd paths are relative to /, eg.

# root (hd0,0)

# kernel /boot/vmlinuz-version ro root=/dev/hda1

# initrd /boot/initrd-version.img

#boot=/dev/hda

default=0

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux Client (2.6.17-1.2519.4.21.el5)

root (hd0,0)

kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M

initrd /boot/initrd-2.6.17-1.2519.4.21.el5.img

4.修改之后,重启系统。128M内存(从16M开始)不被正常的系统使用,为捕获内核保留。注意,free -m的输出会显示内存比不加参数时少了128M,这就是我们所期望的。

注意:可以使用小于128M,但是只使用64M做测试被证实是不可靠的。

5.现在,保留内存已经设置了,打开kdump初始脚本,启动服务:

# chkconfig kdump on

# service kdump start

6.可以通过kexec加载内核镜像,让系统准备捕获一个崩溃时产生的vmcore。可以通过sysrq强制系统崩溃:

# echo "c" > /proc/sysrq-trigger

这造成kernel panic,紧跟着系统重启kdump内核。当启动进程进入到启动kdump 服务器时,vmcore将会被拷贝到你在/etc/kdump.conf文件中指定的位置。

注意:

终端frame-buffer和X将运行不正常。在运行一些类似于在内核配置上添加了"vga=791"或者运行X的系统,在通过kexec启动内核时,终端显示将不清楚。记住,kdump内核仍旧能够创建转储。当系统重启,显示将会恢复到正常状态。

相关文档
最新文档