Files
kdumpst/initramfs/dracut/module-setup.sh.in
Guilherme G. Piccoli 4b5746a60e all: Rename the tool to kdumpst
Big but self-explanatory commit: rename the tool. The name choice was
kdumpst, since it's a tool to enable both kdump and pstore setting, also
it's a silly wordplay with the superlative of kdump, as in "kdumpest".

It's an invasive change (touches most of the files), but should
offer no functional change other than logging messages showing
kdumpst now, instead of kdump, and some filenames.

Notice it doesn't touch documentation, which will be done in
a subsequent commit.

Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
2023-03-31 15:34:42 -03:00

77 lines
2.3 KiB
Bash

# Only include kdump if it is explicitly asked in the argument list
check() {
return 255
}
installkernel() {
load_kdumpst_config
# First clear all unnecessary firmwares/drivers added by drm in order
# to reduce the size of the minimal initramfs being created - kdump
# is an non-graphical environment. This should have been already done
# via dracut cmdline arguments, but play safe and delete here as well.
# Our list includes the most common FWs/drivers (amd, i915, nvidia).
rm -rf "$initdir"/usr/lib/firmware/{amdgpu,i915,nvidia,radeon}
rm -rf "$initdir"/usr/lib/modules/*/kernel/drivers/gpu/drm/{amd,i915,nouveau,radeon}
FSMOD="$(findmnt -n -o FSTYPE --target "${MOUNT_FOLDER}")"
if [ -z "${FSMOD}" ]; then
logger "kdumpst: error on filesystem discovery"
exit 1
fi
instmods "${FSMOD}"
# We try here to be comprehensive and include the most common
# block modules to allow mounting the target device - notice
# that since we use hostonly, only the ones that make sense would
# get added, hence this list won't bloat the minimal image!
instmods aacraid
instmods ahci
instmods hpsa
instmods megaraid_sas
instmods mpt3sas
instmods nvme
instmods virtio_blk
instmods virtio-scsi
}
install() {
# A valid makedumpfile is essential for the kdump initrd creation.
if ! command -v makedumpfile 1>/dev/null; then
logger "kdumpst: failed to create dracut initrd, makedumpfile is missing"
exit 1
fi
load_kdumpst_config
# Install necessary binaries
inst date
inst sync
inst makedumpfile
# Copying kdumpst config/lib files is essential for a functional kdump.
cp -LR --preserve=all /usr/share/kdumpst.d/ "$initdir"/usr/share/
cp -LR --preserve=all /usr/lib/kdumpst/ "$initdir"/usr/lib/
# Finally, we need to derive the proper place to save the dump from the
# config files, in a way that makes possible to mount it in early boot.
DEVNODE="$(findmnt -n -o SOURCE --target "${MOUNT_FOLDER}")"
if [ -z "${DEVNODE}" ]; then
logger "kdumpst: error on devnode discovery"
exit 1
fi
echo "${DEVNODE}" > "$initdir"/usr/lib/kdumpst/kdump.mnt
TGT="$(findmnt -n -o TARGET --target "${MOUNT_FOLDER}")"
if [ -z "${TGT}" ]; then
logger "kdumpst: error on base folder discovery"
exit 1
fi
BASE_FLD="${MOUNT_FOLDER#*$TGT}"
echo "${BASE_FLD}" > "$initdir"/usr/lib/kdumpst/kdump.dir
inst_hook pre-mount 01 "$moddir/kdump-collect.sh"
}