[kexec-tools/f16] mkdumprd: fix dump to local filesystem and raw dump
Cong Wang
wangcong at fedoraproject.org
Mon Aug 1 12:01:58 UTC 2011
commit 1048810fe04f2b568dfcf5f5ab2068252be683b2
Author: Amerigo Wang <amwang at redhat.com>
Date: Mon Aug 1 20:01:31 2011 +0800
mkdumprd: fix dump to local filesystem and raw dump
kdump_dracut_modules/99kdumpbase/kdump.sh | 44 ++++++++++++++++++++-
kdump_dracut_modules/99kdumpbase/module-setup.sh | 2 +-
kexec-tools.spec | 5 ++-
sources | 2 +-
4 files changed, 47 insertions(+), 6 deletions(-)
---
diff --git a/kdump_dracut_modules/99kdumpbase/kdump.sh b/kdump_dracut_modules/99kdumpbase/kdump.sh
index 22d475f..b50cc2f 100755
--- a/kdump_dracut_modules/99kdumpbase/kdump.sh
+++ b/kdump_dracut_modules/99kdumpbase/kdump.sh
@@ -15,7 +15,7 @@ do_default_action()
$DEFAULT_ACTION
}
-add_dump_instruction()
+add_dump_code()
{
if [ -z "$DUMP_INSTRUCTION" ]
then
@@ -25,6 +25,24 @@ add_dump_instruction()
fi
}
+dump_localfs()
+{
+ mount -o remount,rw $NEWROOT/ || return 1
+ [ -d $NEWROOT/mnt ] || mkdir -p $NEWROOT/mnt
+ mount -t $1 $2 $NEWROOT/mnt || return 1
+ mkdir -p $NEWROOT/mnt/$KDUMP_PATH/$DATEDIR
+ $CORE_COLLECTOR /proc/vmcore $NEWROOT/mnt/$KDUMP_PATH/$DATEDIR/vmcore || return 1
+ umount /mnt || return 1
+ return 0
+}
+
+dump_raw()
+{
+ CORE_COLLECTOR=`echo $CORE_COLLECTOR | sed -e's/\(^makedumpfile\)\(.*$\)/\1 -F \2/'`
+ $CORE_COLLECTOR /proc/vmcore | dd of=$1 bs=512 || return 1
+ return 0
+}
+
dump_rootfs()
{
mount -o remount,rw $NEWROOT/ || return 1
@@ -36,6 +54,8 @@ dump_rootfs()
dump_nfs()
{
+ mount -o remount,rw $NEWROOT/ || return 1
+ [ -d $NEWROOT/mnt ] || mkdir -p $NEWROOT/mnt
mount -o nolock -o tcp -t nfs $1 $NEWROOT/mnt/
mkdir -p $NEWROOT/mnt/$KDUMP_PATH/$DATEDIR || return 1
$CORE_COLLECTOR /proc/vmcore $NEWROOT/mnt/$KDUMP_PATH/$DATEDIR/vmcore || return 1
@@ -50,6 +70,18 @@ dump_ssh()
return 0
}
+to_dev_name()
+{
+ local _dev=$1
+ local _is_uuid=`echo $1 | grep UUID`
+ local _is_label=`echo $1 | grep LABEL`
+ if [ -n "$_is_uuid" -o -n "$_is_label" ]
+ then
+ _dev=`findfs $1`
+ fi
+ echo $_dev
+}
+
read_kdump_conf()
{
local conf_file="/etc/kdump.conf"
@@ -57,6 +89,12 @@ read_kdump_conf()
while read config_opt config_val;
do
case "$config_opt" in
+ ext[234]|xfs|btrfs|minix)
+ add_dump_code "dump_localfs $config_opt "$(to_dev_name $config_val)" || do_default_action"
+ ;;
+ raw)
+ add_dump_code "dump_raw $config_val || do_default_action"
+ ;;
path)
KDUMP_PATH="$config_val"
;;
@@ -66,9 +104,9 @@ read_kdump_conf()
net)
if [ -n "$(echo $config_val | grep @)" ]
then
- add_dump_instruction "dump_ssh $config_val || do_default_action"
+ add_dump_code "dump_ssh $config_val || do_default_action"
else
- add_dump_instruction "dump_nfs $config_val || do_default_action"
+ add_dump_code "dump_nfs $config_val || do_default_action"
fi
;;
default)
diff --git a/kdump_dracut_modules/99kdumpbase/module-setup.sh b/kdump_dracut_modules/99kdumpbase/module-setup.sh
index cd466bd..55aec14 100755
--- a/kdump_dracut_modules/99kdumpbase/module-setup.sh
+++ b/kdump_dracut_modules/99kdumpbase/module-setup.sh
@@ -69,7 +69,7 @@ depends() {
install() {
inst "/bin/date" "/bin/date"
inst "/bin/sync" "/bin/sync"
- inst "/usr/bin/reboot" "/bin/reboot"
+ inst "/sbin/findfs" "/sbin/findfs"
inst "/sbin/makedumpfile" "/sbin/makedumpfile"
inst "/etc/kdump.conf" "/etc/kdump.conf"
inst_hook pre-pivot 01 "$moddir/kdump.sh"
diff --git a/kexec-tools.spec b/kexec-tools.spec
index 38a4c94..f4225c9 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -1,6 +1,6 @@
Name: kexec-tools
Version: 2.0.2
-Release: 17%{?dist}
+Release: 18%{?dist}
License: GPLv2
Group: Applications/System
Summary: The kexec/kdump userspace component.
@@ -280,6 +280,9 @@ done
%changelog
+* Mon Aug 1 2011 Cong Wang <xiyou.wangcong at gmail.com> - 2.0.2-18
+- Fix dump to local filesystem and raw dump.
+
* Mon Aug 1 2011 Cong Wang <xiyou.wangcong at gmail.com> - 2.0.2-17
- Depend on dracut-network.
diff --git a/sources b/sources
index 8e90854..6aefb7c 100644
--- a/sources
+++ b/sources
@@ -2,4 +2,4 @@ d9f2ecd3c3307905f24130a25816e6cc kexec-tools-2.0.0.tar.bz2
3e802d638dce0080b910f15908c04a24 kexec-tools-po.tar.gz
e3a813bd6d7dace903a05c1296e20d57 makedumpfile-1.3.5.tar.gz
8e359dd03731b93a2082bd37cc2a4a4c kexec-tools-2.0.2.tar.bz2
-2cda75991642bd2ad58e93e89297748b dracut-files.tbz2
+354f51df313598f3ee0429c3ab19242c dracut-files.tbz2
More information about the scm-commits
mailing list