From: Martin Wilck Date: Tue, 7 Dec 2021 17:30:16 +0000 (+0100) Subject: fix(multipath): check if mpathconf is available X-Git-Tag: 056~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4318533e1493bfab622b64efc1b799426c812c26;p=thirdparty%2Fdracut.git fix(multipath): check if mpathconf is available Not all distributions utilize and ship the mpathconf utilitiy. Avoid error messages and systemd complaints about multipathd-configure.service in this case. --- diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh index 05222389e..541e243aa 100755 --- a/modules.d/90multipath/module-setup.sh +++ b/modules.d/90multipath/module-setup.sh @@ -60,6 +60,10 @@ installkernel() { hostonly='' dracut_instmods -o -s "$_funcs" "=drivers/scsi" "=drivers/md" ${_s390drivers:+"$_s390drivers"} } +mpathconf_installed() { + command -v mpathconf &> /dev/null +} + # called by dracut install() { local -A _allow @@ -104,7 +108,8 @@ install() { /etc/multipath/* \ "$config_dir"/* - [[ $hostonly ]] && [[ $hostonly_mode == "strict" ]] && { + mpathconf_installed \ + && [[ $hostonly ]] && [[ $hostonly_mode == "strict" ]] && { for_each_host_dev_and_slaves_all add_hostonly_mpath_conf if ((${#_allow[@]} > 0)); then local -a _args @@ -128,9 +133,11 @@ install() { fi if dracut_module_included "systemd"; then - inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service" + if mpathconf_installed; then + inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service" + $SYSTEMCTL -q --root "$initdir" enable multipathd-configure.service + fi inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service" - $SYSTEMCTL -q --root "$initdir" enable multipathd-configure.service $SYSTEMCTL -q --root "$initdir" enable multipathd.service else inst_hook pre-trigger 02 "$moddir/multipathd.sh"