3 # kexec-load Load kernel image with kexec
7 # description: This tool is used to load a kernel in memory and reboot into the kernel \
8 # loaded in memory using the kexec system call.
12 # Source function library
13 . /etc/rc.d/init.d/functions
16 KERNEL_IMAGE="/boot/vmlinuz"
20 # Get service config - may override defaults
21 [ -f /etc/sysconfig/kexec ] && . /etc/sysconfig/kexec
24 if [ -z "$APPEND" ]; then
26 for a in $(cat /proc/cmdline); do
30 # kexec_jump_back_entry=0x01000201a4814e49
38 # convert to real file for readability
39 if [ -L "$KERNEL_IMAGE" ]; then
40 KERNEL_IMAGE=$(readlink -f "$KERNEL_IMAGE")
42 if [ -L "$INITRD" ]; then
43 INITRD=$(readlink -f "$INITRD")
46 if [ -z "$INITRD" ]; then
47 show "Loading kernel image: %s, args [%s]" "$KERNEL_IMAGE" "$APPEND"
48 kexec -l "$KERNEL_IMAGE" --append="$APPEND"
50 show "Loading kernel image: %s, initrd %s, args [%s]" "$KERNEL_IMAGE" "$INITRD" "$APPEND"
51 kexec -l "$KERNEL_IMAGE" --initrd="$INITRD" --append="$APPEND"
54 [ $RETVAL = 0 ] && ok || fail
58 if [ -f /var/lock/subsys/kexec ]; then
61 touch /var/lock/subsys/kexec
65 if ! is_yes "$LOAD_KEXEC" || [ ! -f /sys/kernel/kexec_loaded ]; then
69 # skip if already loaded something
70 if [ "$(cat /sys/kernel/kexec_loaded 2>/dev/null)" = "1" ]; then
75 rm -f /var/lock/subsys/kexec
79 if [ "$(cat /sys/kernel/kexec_loaded 2>/dev/null)" = "1" ]; then
80 show "Kexec image loaded"; ok
82 show "Kexec image is not loaded"; fail
84 if [ "$(cat /sys/kernel/kexec_crash_loaded 2>/dev/null)" = 1 ]; then
85 show "Kexec image for kernel crash loaded"; ok
87 show "Kexec image for kernel crash is not loaded"; fail
90 # convert to real file for readability
91 if [ -L "$KERNEL_IMAGE" ]; then
92 KERNEL_IMAGE=$(readlink -f "$KERNEL_IMAGE")
94 if [ -L "$INITRD" ]; then
95 INITRD=$(readlink -f "$INITRD")
97 INIT_COL=0 show "Configured kernel: %s" "$KERNEL_IMAGE"; echo
98 if [ -n "$INITRD" ]; then
99 INIT_COL=0 show "Configured initrd: %s" "$INITRD"; echo
104 # See how we were called.
123 msg_usage "$0 {start|stop|load|restart|status}"