From 37f2fe55d11156839b87d6cf74d686956d72dc06 Mon Sep 17 00:00:00 2001 From: Xunlei Pang Date: Wed, 16 Aug 2017 13:55:17 +0800 Subject: [PATCH] dracut.sh: introduce "--no-hostonly-default-device" argument Kdump doesn't need default host devices like root, swap, fstab, etc, we only care about the dump target which can be added via "--mount" or "--add-device". We met several issues that kdump kernel failed due to one of those host devices added by dracut, additionally, the needless devices(e.g. LVM) consume some appreciable amount of memory which is more likely to cause OOM under memory-limited kdump. So this patch introduced "--no-hostonly-default-device" to avoid adding those default devices as host_devs. Signed-off-by: Xunlei Pang --- dracut.8.asc | 4 ++++ dracut.sh | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dracut.8.asc b/dracut.8.asc index ca169189..23c53cc4 100644 --- a/dracut.8.asc +++ b/dracut.8.asc @@ -323,6 +323,10 @@ provide a valid _/etc/fstab_. **--no-hostonly-cmdline**: Do not store kernel command line arguments needed in the initramfs +**--no-hostonly-default-device**: + Do not generate implicit host devices like root, swap, fstab, etc. + Use "--mount" or "--add-device" to explicitly add devices as needed. + **--hostonly-i18n**: Install only needed keyboard and font files according to the host configuration (default). diff --git a/dracut.sh b/dracut.sh index 3a136d46..8d7ee70a 100755 --- a/dracut.sh +++ b/dracut.sh @@ -151,6 +151,10 @@ Creates initial ramdisk images for preloading modules in the initramfs --no-hostonly-cmdline Do not store kernel command line arguments needed in the initramfs + --no-hostonly-default-device + Do not generate implicit host devices like root, + swap, fstab, etc. Use "--mount" or "--add-device" + to explicitly add devices as needed. --hostonly-i18n Install only needed keyboard and font files according to the host configuration (default). --no-hostonly-i18n Install all keyboard and font files available. @@ -345,6 +349,7 @@ rearrange_params() --long no-host-only \ --long hostonly-cmdline \ --long no-hostonly-cmdline \ + --long no-hostonly-default-device \ --long persistent-policy: \ --long fstab \ --long help \ @@ -539,6 +544,8 @@ while :; do i18n_install_all_l="yes" ;; --no-hostonly-cmdline) hostonly_cmdline_l="no" ;; + --no-hostonly-default-device) + hostonly_default_device="no" ;; --persistent-policy) persistent_policy_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;; --fstab) use_fstab_l="yes" ;; @@ -1133,7 +1140,7 @@ if (( ${#add_device_l[@]} )); then push_host_devs "${add_device_l[@]}" fi -if [[ $hostonly ]]; then +if [[ $hostonly ]] && [[ "$hostonly_default_device" != "no" ]]; then # in hostonly mode, determine all devices, which have to be accessed # and examine them for filesystem types