3

My system always crashes down. So I decided to enable kdump to see the problem since I was not able to see possible errors on the log files.

I followed the steps to set up kdump from a site here. My server runs on CentOS 5.8 and 16GB RAM. Below are the steps I performed to configure kdump:

1. Install kexec-tools, `yum install kexec-tools` and follow the installation steps
2. Edit the /boot/grub/grub.conf to configure the kdump memory usage
3. Edit the /etc/kdump.cof to configure the target type to /var/crash/ and core_collector
4. Enable kdump through `chkconfig kdump on`.
5. Reboot the server

When I run service kdump status, it says Kdump is not operational. What should I do make the kdump operational. Did i miss something to configure? I included below the contents of my /boot/grub/grub.conf and /etc/kdump.conf

Bellow are the contents of the file /boot/grub/grub.conf


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-308.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/
crashkernel=128M
        initrd /initrd-2.6.18-308.el5.img

Below are the contents of the file /etc/kdump.conf


# Configures where to put the kdump /proc/vmcore files
#
# This file contains a series of commands to perform (in order) when a
# kernel crash has happened and the kdump kernel has been loaded.  Directives in
# this file are only applicable to the kdump initramfs, and have no effect if
# the root filesystem is mounted and the normal init scripts are processed
#
# Currently only one dump target and path may be configured at once
# if the configured dump target fails, the default action will be preformed
# the default action may be configured with the default directive below.  If the
# configured dump target succedes
#
# For filesystem based dump, it's recommended to use UUID and LABEL
# instead of device name in dump target.
#
# See the kdump.conf(5) man page for details of configuration directives

#raw /dev/sda5
#ext3 /dev/sda3
#ext3 LABEL=/boot
#ext3 UUID=03138356-5e61-4ab3-b58e-27507ac41937
#net my.server.com:/export/tmp
#net user@my.server.com
path /var/crash
core_collector makedumpfile -c --message-level 1
#core_collector cp --sparse=always
#link_delay 60
#kdump_post /var/crash/scripts/kdump-post.sh
#extra_bins /usr/bin/lftp
#disk_timeout 30
#extra_modules gfs2
#options modulename options
#default shell
#sshkey /root/.ssh/kdump_id_rsa

I also notice that my /boot/grub/grub.conf file differs from the sample grub.conf file from the tutorial. They differ in two lines:

From tutorial
   kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3
   initrd /initramfs-2.6.32-220.el6.x86_64.img

From own conf 
   kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/
   initrd /initrd-2.6.18-308.el5.img 

Could these lines cause the kdump not to start?

[EDIT 1] Content of /var/log/messages

    Feb 25 02:18:28 61540 kernel: Command line: ro root=LABEL=/ crashkernel=128M
    Feb 25 02:18:28 61540 kernel: BIOS-provided physical RAM map:
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 0000000000010000 - 000000000009a000 (usable)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 0000000000100000 - 00000000cfda0000 (usable)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 00000000cfda0000 - 00000000cfdd1000 (ACPI NVS)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 00000000cfdd1000 - 00000000cfe00000 (ACPI data)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 00000000cfe00000 - 00000000cff00000 (reserved)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
    Feb 25 02:18:28 61540 kernel:  BIOS-e820: 0000000100000000 - 000000042f000000 (usable)
    Feb 25 02:18:28 61540 kernel: DMI 2.4 present.
    Feb 25 02:18:28 61540 kernel: No NUMA configuration found
    Feb 25 02:18:28 61540 kernel: Faking a node at 0000000000000000-000000042f000000
    Feb 25 02:18:28 61540 kernel: Bootmem setup node 0 0000000000000000-000000042f000000
    Feb 25 02:18:28 61540 kernel: Memory for crash kernel (0x0 to 0x0) notwithin permissible range
    Feb 25 02:18:28 61540 kernel: disabling kdump
    Feb 25 02:44:39 61540 kdump: No crashkernel parameter was specified or crashkernel memory reservation failed
    Feb 25 02:44:39 61540 kdump: failed to start up

[EDIT 2] Or should I change the code ro root=LABEL= into ro root=/dev/sda3?

Pelang
  • 413
  • 5
  • 9
  • 15
  • _Or should I change the code `ro root=LABEL=/` into `ro root=/dev/sda3`?_ --> DON'T do that without understanding. – quanta Feb 25 '13 at 09:02
  • yes. i check that =/ refers to where the kernel is located base on /boot. thanks for reminding – Pelang Feb 25 '13 at 09:18

2 Answers2

3
title CentOS (2.6.18-308.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/
crashkernel=128M
        initrd /initrd-2.6.18-308.el5.img

It looks like you put the crashkernel parameter into a new line. This is the reason for Kdump is not operational message. All the kernel parameters must to be put on the same line as kernel:

title CentOS (2.6.18-308.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/ crashkernel=128M
        initrd /initrd-2.6.18-308.el5.img

After reboot, take a look at the /var/log/messages, you'll see something like this:

localhost kdump: kexec: loaded kdump kernel
localhost kdump: started up

and:

# /etc/init.d/kdump start
Starting kdump:                                            [  OK  ]
# /etc/init.d/kdump status
Kdump is operational

kdump: No crashkernel parameter was specified or crashkernel memory reservation failed
kdump: failed to start up

According to this document, try this:

crashkernel=128M@16M

quanta
  • 50,327
  • 19
  • 152
  • 213
  • I edited the grub.conf to make the crashkernel in one line. but there is still error in /var/log/messages. I add the errors as additional info on the question above. – Pelang Feb 25 '13 at 08:25
  • How about this `crashkernel=128M@16M`? – quanta Feb 25 '13 at 08:54
  • `128@16M` or `128M@16M`? – quanta Feb 25 '13 at 09:00
  • Show us the new `/var/log/messages` after changing (from this line `Kernel command line...`)? – quanta Feb 25 '13 at 09:05
  • let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/7663/discussion-between-quanta-and-mark) – quanta Feb 25 '13 at 09:06
  • Just need to make a reboot to make things work. Running the kdump on the current session without rebooting after the changes will still return the same error. – Pelang Feb 25 '13 at 09:16
  • That `128M@16M` was the missing piece, putting it in solved the issue and kdump has started. – karatedog May 31 '22 at 13:49
1

Your crashkernel is too small. Try 256M, 384M, or even 512M. The message 'Memory for crashkernel ... is not within permissible range" is telling you that.

  • based on documentation, 64 should be enough for 12GB RAM. But taking into account other missing information it is probably the documentation that needs tweaking... – karatedog May 31 '22 at 13:50