Important: You are required to change your passwords used for Gentoo services and set an email address for your Wiki account if you haven't done so. See the full announcement and Wiki email policy change for more information.

Kernel Crash Dumps

From Gentoo Wiki
(Redirected from KernelCrashDumps)
Jump to: navigation, search

This article explains how to capture the kernel crash dumps (kdump). Kdumps are produced by kernel panic or lockup. To be simple, just a single kernel is used both for the ordinary system and recovery. The described method is almost distro independent. This article is based on KDump on Gentoo by rich0, and the first version is posted by the author.

Note
It's not yet known how to do it sucessfully with an initramfs.

Installation

Kernel

You need to activate the following kernel options:

Kernel configuration

Processor type and features --->
    [*] kexec system call
    [*] kernel crash dumps
    [*] Build a relocatable kernel
Kernel hacking  --->
    [*] Kernel debugging
    [*] Compile the kernel with debug info
File systems  --->
    Pseudo filesystems  --->
        -*- /proc file system support
        [*]   /proc/vmcore support

Software

Install sys-apps/kexec-tools:

→ Information about USE flags
USE flag Default Recommended Description
lzma No Enables support for LZMA compressed kernel images
xen No Enable extended xen support
zlib Yes Adds support for zlib (de)compression
root # emerge --ask kexec-tools

Configuration

local.d script

Create /etc/local.d/kdump.start containing:

File/etc/local.d/kdump.start

#!/bin/bash
kexec -p /[path-to-kernel] --append="root=[root-device] single irqpoll maxcpus=1 reset_devices"

Now make this file executable:

root # chmod u+x /etc/local.d/kdump.start

Note that your kernel has to be readable. (A typical gentoo config leaves /boot unmounted, so you'll either need to remove noauto from your fstab or place a copy of your kernel elsewhere.)

Bootloader

To the kernel boot option, add crashkernel=64M for up to around 12GB of system RAM.

Usage

First, run the above script.

root # /etc/local.d/kdump.start

It loads the rescue kernel image which is run after kernel crash.

Whenever you get a kernel panic or lockup (hard/soft if the kernel is set to detect them), kexec runs the kernel in crash mode, relocated to a reserved area of memory. The rest of RAM will be untouched. When the system boots up log in and copy /proc/vmcore to a file - this is your crash dump. Then reboot your system to get back to a normal configuration; you shouldn't continue to operate in this state.

External resources