Kexec: Difference between revisions

From Alpine Linux
m (→‎Usage: Use openrc shutdown to unmount filesystems and gracefully shut down services.)
m (→‎Usage: Make the code snippet a bit more graceful (doing `openrc shutdown' if kexec -l failed is dumb!) Add a note for scripters to make the code snippet even more graceful if they expect a reboot no matter what.)
Line 8: Line 8:


{{Cmd|# kexec -l /boot/vmlinuz-edge --initrd \
{{Cmd|# kexec -l /boot/vmlinuz-edge --initrd \
     /boot/initramfs-edge --reuse-cmdline
     /boot/initramfs-edge --reuse-cmdline \
# openrc shutdown
&& openrc shutdown \
# kexec -e}}
&& kexec -e}}


{{Note|if the above is being used in a script and the machine is expected to reboot in the event of a kexec failure, append <code> &#124;&#124; reboot</code> to the last line}}
There are no Alpine-specific considerations for Kexec. Please review the man page and existing references below for more details. This page is deliberately kept short in order to avoid duplicating existing documentation.
There are no Alpine-specific considerations for Kexec. Please review the man page and existing references below for more details. This page is deliberately kept short in order to avoid duplicating existing documentation.



Revision as of 09:09, 5 September 2023

Kexec is a system call that enables loading and booting into another kernel. This is useful for faster reboots that skip the BIOS or UEFI initialisation process.

Installing kexec-tools

The userspace tools required to use it can be installed via

apk add kexec-tools kexec-tools-doc

The tools are not available on all flavors of Alpine, additionally not all kernels are compiled with the kexec syscall enabled. You will most likely want to check your /boot/config-* file for CONFIG_KEXEC=y

Usage

On a typical Alpine setup, it can be used via:

# kexec -l /boot/vmlinuz-edge --initrd \ /boot/initramfs-edge --reuse-cmdline \ && openrc shutdown \ && kexec -e

Note: if the above is being used in a script and the machine is expected to reboot in the event of a kexec failure, append || reboot to the last line

There are no Alpine-specific considerations for Kexec. Please review the man page and existing references below for more details. This page is deliberately kept short in order to avoid duplicating existing documentation.

See also