Files
kdumpst/kdump-collect.sh
T

59 lines
1.6 KiB
Bash
Raw Normal View History

2023-03-31 15:34:26 -03:00
#!/bin/sh
#
# SPDX-License-Identifier: LGPL-2.1+
#
# Copyright (c) 2021 Valve.
2022-11-23 18:36:23 -03:00
# Maintainer: Guilherme G. Piccoli <gpiccoli@igalia.com>
2023-03-31 15:34:26 -03:00
#
2022-11-24 17:18:21 -03:00
# 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.
2023-03-31 15:34:26 -03:00
#
2022-11-24 19:29:18 -03:00
# 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 checking here.
for cfg in "/usr/lib/kdump/conf/"/*; do
. "$cfg"
done
2023-03-31 15:34:26 -03:00
VMCORE="/proc/vmcore"
2022-01-12 18:38:32 -03:00
KDUMP_TIMESTAMP=$(date -u +"%Y%m%d%H%M")
2022-11-25 14:10:04 -03:00
KDUMP_FOLDER="/kdump_path/${MOUNT_FOLDER}/crash/${KDUMP_TIMESTAMP}"
2023-03-31 15:34:26 -03:00
# 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.
2023-03-31 15:34:26 -03:00
#
if [ ! -f $VMCORE ]; then
reboot -f
fi
DEVN="$(cat /usr/lib/kdump/kdump.devnode)"
2023-03-31 15:34:26 -03:00
mkdir -p "/kdump_path"
if ! mount "${DEVN}" /kdump_path; then
2023-03-31 15:34:26 -03:00
reboot -f
fi
mkdir -p "${KDUMP_FOLDER}"
# we want to split on spaces, it's a set of parameters!
# shellcheck disable=SC2086
2022-01-12 18:38:32 -03:00
/usr/bin/makedumpfile ${MAKEDUMPFILE_DMESG_CMD} $VMCORE "${KDUMP_FOLDER}/dmesg.txt"
2023-03-31 15:34:26 -03:00
sync "${KDUMP_FOLDER}/dmesg.txt"
2022-01-12 18:38:32 -03:00
if [ "${FULL_COREDUMP}" -ne 0 ]; then
# shellcheck disable=SC2086
2022-01-12 18:38:32 -03:00
/usr/bin/makedumpfile ${MAKEDUMPFILE_COREDUMP_CMD} $VMCORE "${KDUMP_FOLDER}/vmcore.compressed"
2023-03-31 15:34:26 -03:00
sync "${KDUMP_FOLDER}/vmcore.compressed"
fi
umount "${DEVN}"
2023-03-31 15:34:26 -03:00
sync
reboot -f