In case of on dm related target, we can clearly and safely
remove many unnecessary modules to reduce initramfs size,
and to enhance stability.
Signed-off-by: Xunlei Pang <xlpang(a)redhat.com>
---
mkdumprd | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/mkdumprd b/mkdumprd
index 501a689..d108811 100644
--- a/mkdumprd
+++ b/mkdumprd
@@ -374,21 +374,34 @@ check_crypt()
return 1
}
+is_dm()
+{
+ if [ -d "/sys/dev/block/$1/dm" ]; then
+ return 0
+ fi
+
+ return 1
+}
+
omit_dracut_modules()
{
local target majmin
- local crypt_exists
+ local crypt_exists dm_exists
# Skip fadump case
is_fadump_capable && return
crypt_exists=0
+ dm_exists=0
for target in $(get_kdump_targets); do
if [ -b "$target" ]; then
# Check "crypt"
majmin=$(get_maj_min $target)
check_block_and_slaves is_crypt $majmin && crypt_exists=1
+
+ # Check "dm"
+ check_block_and_slaves is_dm $majmin && dm_exists=1
fi
done
@@ -396,6 +409,12 @@ omit_dracut_modules()
if [ "$crypt_exists" == "0" ]; then
add_dracut_arg "--omit" "crypt"
fi
+
+ # Further omit more modules in case of no dm related target
+ if [ "$dm_exists" == "0" ]; then
+ # "dm_exists=0" implies "crypt_exists=0"
+ add_dracut_arg "--omit" "lvm dm multipath dmraid"
+ fi
}
if ! check_resettable; then
--
1.8.3.1