You can use kdump to save kernel dumps. If the kernel crashes, it is
useful to copy the memory image of the crashed environment to the file
system. You can then debug the dump file to find the cause of the kernel
crash. This is called
kdump works similar to kexec (see Section 18.0, kexec and kdump). The capture kernel is executed after the running production kernel crashes. The difference is that kexec replaces the production kernel with the capture kernel. With kdump, you still have access to the memory space of the crashed production kernel. You can save the memory snapshot of the crashed kernel in the environment of the kdump kernel.
HINT: Dumps over Network
In environments with limited local storage, you need to set up kernel dumps over the network. kdump supports configuring the specified network interface and bringing it up via initrd. Both LAN and VLAN interfaces are supported. You have to specify the network interface and the mode (dhcp or static) either with YaST, or using the KDUMP_NETCONFIG option in the /etc/sysconfig/kdump file. The third way is to build initrd manually, for example with
/sbin/mkinitrd -D vlan0
for a dhcp VLAN interface, or
/sbin/mkinitrd -I eth0
for a static LAN interface.
You can either configure kdump manually or with YaST.
IMPORTANT: Target Filesystem for kdump Must Be Mounted During Configuration
When configuring kdump, you can specify a location to which the dumped images will be saved (default: /var/crash). This location must be mounted when configuring kdump, otherwise the configuration will fail.
kdump reads its configuration from the /etc/sysconfig/kdump file. To make sure that kdump works on your system, its default configuration is sufficient. To use kdump with the default settings,follow these steps:
Append the following kernel command line option to your boot loader configuration, and reboot the system:
You can find the corresponding values for size and offset in the following table:
Table 18-1 Recommended Values for Additional Kernel Command Line Parameters
i386 and x86-64
crashkernel=256M (small systems) or crashkernel=512M (larger systems)
crashkernel=128M@4M or crashkernel=256M@4M (larger systems)
crashkernel=128M (small systems) or crashkernel=256M (larger systems)
Enable kdump init script:
chkconfig boot.kdump on
You can edit the options in /etc/sysconfig/kdump. Reading the comments will help you understand the meaning of individual options.
Execute the init script once with rckdump start, or reboot the system.
After configuring kdump with the default values, check if it works as expected. Make sure that no users are currently logged in and no important services are running on your system. Then follow these steps:
Switch to runlevel 1 with telinit 1
Unmount all the disk file systems except the root file system with umount -a
Remount the root file system in read-only mode: mount -o remount,ro /
kernel panic with the procfs
interface to Magic SysRq keys:
echo c >/proc/sysrq-trigger
IMPORTANT: The Size of Kernel Dumps
The KDUMP_KEEP_OLD_DUMPS option controls the number of preserved kernel dumps (default is 5). Without compression, the size of the dump can take up to the size of the physical RAM memory. Make sure you have sufficient space on the /var partition.
The capture kernel boots and the crashed kernel memory snapshot is saved to the file system. The save path is given by the KDUMP_SAVEDIR option and it defaults to /var/crash. If KDUMP_IMMEDIATE_REBOOT is set to yes , the system automatically reboots the production kernel. Log in and check that the dump has been created under /var/crash.
WARNING: Screen Freezes in X11 Session
When kdump takes control and you are logged in an X11 session, the screen will freeze without any notice. Some kdump activity can be still visible (for example, deformed messages of a booting kernel on the screen).
Do not reset the computer because kdump always needs some time to complete its task.
In order to configure kdump with YaST, you need to install the yast2-kdump package. Then either start the module in the category of YaST Control Center, or enter yast2 kdump in the command line as root.
Figure 18-1 YaST2 Kdump Module - Start-Up Page
In thewindow, select . The default value for kdump memory is sufficient on most systems.
Clickin the left pane, and check what pages to include in the dump. You do not need to include the following memory content to be able to debug kernel problems:
Pages filled with zero
User data pages
In thewindow, select the type of the dump target and the URL where you want to save the dump. If you selected a network protocol, such as FTP or SSH, you need to enter relevant access information as well.
Fill thewindow information if you want kdump to inform you about its events via E-mail and confirm your changes with after fine tuning kdump in the window. kdump is now configured.