Currently, for no reason we have a different folder structure in the kdump initrd compared to the installed package. Change it here, so both directories' structure match now. We also changed the copy command for the config files, removing some unnecessary quotes. Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/sh
|
|
#
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
|
#
|
|
# Copyright (c) 2021 Valve.
|
|
# Maintainer: Guilherme G. Piccoli <gpiccoli@igalia.com>
|
|
#
|
|
# Script for effectively collecting the core dump/dmesg from
|
|
# within a minimal initrd - part of kdump/pstore tooling.
|
|
# The most fail-prone operations are guarded with conditionals to
|
|
# bail in case we indeed fail - worst thing here would be to have
|
|
# a bad condition and get stuck in this minimal initrd with no
|
|
# output for the user.
|
|
#
|
|
|
|
# We have a more controlled situation with regards the config
|
|
# files here, since we manually added them in the initrd and
|
|
# the validation also happened there, during such addition,
|
|
# hence not requiring checks here.
|
|
for cfg in "/usr/share/kdump.d"/*; do
|
|
. "$cfg"
|
|
done
|
|
|
|
VMCORE="/proc/vmcore"
|
|
KDUMP_TIMESTAMP=$(date -u +"%Y%m%d%H%M")
|
|
KDUMP_FOLDER="/kdump_path/${MOUNT_FOLDER}/crash/${KDUMP_TIMESTAMP}"
|
|
|
|
# Bail out in case we don't have a vmcore, i.e. either we're not kdumping
|
|
# or something is pretty wrong and we wouldn't be able to progress.
|
|
#
|
|
if [ ! -f $VMCORE ]; then
|
|
reboot -f
|
|
fi
|
|
|
|
DEVN="$(cat /usr/lib/kdump/kdump.devnode)"
|
|
mkdir -p "/kdump_path"
|
|
|
|
if ! mount "${DEVN}" /kdump_path; then
|
|
reboot -f
|
|
fi
|
|
|
|
mkdir -p "${KDUMP_FOLDER}"
|
|
|
|
# we want to split on spaces, it's a set of parameters!
|
|
# shellcheck disable=SC2086
|
|
/usr/bin/makedumpfile ${MAKEDUMPFILE_DMESG_CMD} $VMCORE "${KDUMP_FOLDER}/dmesg.txt"
|
|
sync "${KDUMP_FOLDER}/dmesg.txt"
|
|
|
|
if [ "${FULL_COREDUMP}" -ne 0 ]; then
|
|
# shellcheck disable=SC2086
|
|
/usr/bin/makedumpfile ${MAKEDUMPFILE_COREDUMP_CMD} $VMCORE "${KDUMP_FOLDER}/vmcore.compressed"
|
|
sync "${KDUMP_FOLDER}/vmcore.compressed"
|
|
fi
|
|
|
|
umount "${DEVN}"
|
|
sync
|
|
|
|
reboot -f
|