System information

206 System Analysis and Tuning Guide
Booting without GRUB or LILO configuration
When the system boots a kernel with kexec, it skips the boot loader stage. Normal
booting procedure can fail due to an error in the boot loader configuration. With
kexec, you do not depend on a working boot loader configuration.
18.2 Required Packages
If you intend to use kexec on SUSE® Linux Enterprise Server to speed up reboots
or avoid potential hardware problems, you need to install the kexec-tools pack-
age. It contains a script called kexec-bootloader, which reads the boot loader
configuration and runs kexec with the same kernel options as the normal boot loader
does. kexec-bootloader -h gives you the list of possible options.
To set up an environment that helps you obtain useful debug information in case of a
kernel crash, you need to install makedumpfile in addition.
The preferred method to use kdump in SUSE Linux Enterprise Server is through the
YaST kdump module. Install the package yast2-kdump by entering zypper in-
stall yast2-kdump in the command line as root.
18.3 kexec Internals
The most important component of kexec is the /sbin/kexec command. You can
load a kernel with kexec in two different ways:
kexec -l kernel_image loads the kernel to the address space of a produc-
tion kernel for a regular reboot. You can later boot to this kernel with kexec -e.
kexec -p kernel_image loads the kernel to a reserved area of memory.
This kernel will be booted automatically when the system crashes.
If you want to boot another kernel and preserve the data of the production kernel
when the system crashes, you need to reserve a dedicated area of the system memory.
The production kernel never loads to this area because it must be always available. It
is used for the capture kernel so that the memory pages of the production kernel can
be preserved. You reserve the area with crashkernel = size@offset as a com-
mand line parameter of the production kernel. Note that this is not a parameter of the
capture kernel. The capture kernel does not use kexec at all.