[kexec-tools/f16] mkdumprd: generate udev rules to handle device names
Cong Wang
wangcong at fedoraproject.org
Mon Aug 1 14:53:34 UTC 2011
commit 386612d259fe5f5686f490203a28129e7b8fde2b
Author: Amerigo Wang <amwang at redhat.com>
Date: Mon Aug 1 22:53:00 2011 +0800
mkdumprd: generate udev rules to handle device names
kdump_dracut_modules/99kdumpbase/block-genrules.sh | 14 ++++++
kdump_dracut_modules/99kdumpbase/kdump.sh | 43 +++++++++++++------
kdump_dracut_modules/99kdumpbase/module-setup.sh | 2 +-
kexec-tools.spec | 6 ++-
sources | 2 +-
5 files changed, 50 insertions(+), 17 deletions(-)
---
diff --git a/kdump_dracut_modules/99kdumpbase/block-genrules.sh b/kdump_dracut_modules/99kdumpbase/block-genrules.sh
new file mode 100755
index 0000000..986291c
--- /dev/null
+++ b/kdump_dracut_modules/99kdumpbase/block-genrules.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+. /lib/dracut-lib.sh
+
+while read config_opt config_val;
+do
+ case "$config_opt" in
+ ext[234]|xfs|btrfs|minix|raw)
+ udevmatch $config_val >> $UDEVRULESD/99-localfs.rules
+ ;;
+ esac
+done < /etc/kdump.conf
+
+
diff --git a/kdump_dracut_modules/99kdumpbase/kdump.sh b/kdump_dracut_modules/99kdumpbase/kdump.sh
index b50cc2f..f101a05 100755
--- a/kdump_dracut_modules/99kdumpbase/kdump.sh
+++ b/kdump_dracut_modules/99kdumpbase/kdump.sh
@@ -25,13 +25,25 @@ add_dump_code()
fi
}
+add_to_fstab()
+{
+ local _mp
+ while read dev mp fs opts rest; do
+ if [ "$dev" = "$1" ]; then
+ _mp=$NEWROOT$mp
+ echo "$dev $NEWROOT$mp $fs ${opts},ro $rest"
+ break
+ fi
+ done < "$NEWROOT/etc/fstab" >> /etc/fstab
+ echo "$_mp"
+}
+
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
+ local _mp=`add_to_fstab $1`
+ mount $_mp || return 1
+ mkdir -p $_mp/$KDUMP_PATH/$DATEDIR
+ $CORE_COLLECTOR /proc/vmcore $_mp/$KDUMP_PATH/$DATEDIR/vmcore || return 1
umount /mnt || return 1
return 0
}
@@ -72,14 +84,17 @@ dump_ssh()
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
+ local dev="$1"
+
+ case "$dev" in
+ UUID=*)
+ dev=`blkid -U "${dev#UUID=}"`
+ ;;
+ LABEL=*)
+ dev=`blkid -L "${dev#LABEL=}"`
+ ;;
+ esac
+ echo $dev
}
read_kdump_conf()
@@ -90,7 +105,7 @@ read_kdump_conf()
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"
+ add_dump_code "dump_localfs "$(to_dev_name $config_val)" || do_default_action"
;;
raw)
add_dump_code "dump_raw $config_val || do_default_action"
diff --git a/kdump_dracut_modules/99kdumpbase/module-setup.sh b/kdump_dracut_modules/99kdumpbase/module-setup.sh
index 55aec14..cfeab91 100755
--- a/kdump_dracut_modules/99kdumpbase/module-setup.sh
+++ b/kdump_dracut_modules/99kdumpbase/module-setup.sh
@@ -69,9 +69,9 @@ depends() {
install() {
inst "/bin/date" "/bin/date"
inst "/bin/sync" "/bin/sync"
- 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"
+ inst_hook pre-udev 40 "$moddir/block-genrules.sh"
}
diff --git a/kexec-tools.spec b/kexec-tools.spec
index f4225c9..68d8b2b 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -1,6 +1,6 @@
Name: kexec-tools
Version: 2.0.2
-Release: 18%{?dist}
+Release: 19%{?dist}
License: GPLv2
Group: Applications/System
Summary: The kexec/kdump userspace component.
@@ -168,6 +168,7 @@ make -C kexec-tools-po install DESTDIR=$RPM_BUILD_ROOT
mkdir -p -m755 $RPM_BUILD_ROOT/etc/kdump-adv-conf
tar -C $RPM_BUILD_ROOT/etc/kdump-adv-conf -jxvf %{SOURCE100}
chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/module-setup.sh
+chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/block-genrules.sh
chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/kdump.sh
@@ -280,6 +281,9 @@ done
%changelog
+* Mon Aug 1 2011 Cong Wang <xiyou.wangcong at gmail.com> - 2.0.2-19
+- Generate udev rules to handle device names.
+
* Mon Aug 1 2011 Cong Wang <xiyou.wangcong at gmail.com> - 2.0.2-18
- Fix dump to local filesystem and raw dump.
diff --git a/sources b/sources
index 6aefb7c..8038967 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
-354f51df313598f3ee0429c3ab19242c dracut-files.tbz2
+f318d715bede3872928e705d1a48b94f dracut-files.tbz2
More information about the scm-commits
mailing list