The ifcfg file name of <netif> under "/etc/sysconfig/network-scripts/" may not be "ifcfg-<netif>". For example, for "enp0s25" we are able to generate its ifcfg like "/etc/sysconfig/network-scripts/ifcfg-enp0s25test" via network-manager. If we alway assume "ifcfg-<netif>" is there, we will got the wrong result in some cases.
The issue can be resolved by using the new get_ifcfg_filename() introduced by PATCH "kdump-lib: Add get_ifcfg_filename() to get the proper ifcfg file", so we hereby change all the "ifcfg-<netif>" users to use get_ifcfg_filename().
Signed-off-by: Xunlei Pang xlpang@redhat.com --- v4->v5: -Add source_ifcfg_file(). -Improve changelog.
dracut-module-setup.sh | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 4cd7107..ecf7d3f 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -63,10 +63,23 @@ kdump_is_vlan() { }
# $1: netdev name +source_ifcfg_file() { + local ifcfg_file + + ifcfg_file=$(get_ifcfg_filename $1) + if [ -f "${ifcfg_file}" ]; then + . ${ifcfg_file} + else + dwarning "The ifcfg file of $1 is not found!" + fi +} + +# $1: netdev name kdump_setup_dns() { local _nameserver _dns local _dnsfile=${initdir}/etc/cmdline.d/42dns.conf - . /etc/sysconfig/network-scripts/ifcfg-$1 + + source_ifcfg_file $1
[ -n "$DNS1" ] && echo "nameserver=$DNS1" > "$_dnsfile" [ -n "$DNS2" ] && echo "nameserver=$DNS2" >> "$_dnsfile" @@ -189,7 +202,9 @@ kdump_setup_bond() { done echo -n " bond=$_netdev:$(echo $_slaves | sed 's/,$//')" >> ${initdir}/etc/cmdline.d/42bond.conf # Get bond options specified in ifcfg - . /etc/sysconfig/network-scripts/ifcfg-$_netdev + + source_ifcfg_file $_netdev + bondoptions="$(echo :$BONDING_OPTS | sed 's/\s+/,/')" echo "$bondoptions" >> ${initdir}/etc/cmdline.d/42bond.conf } @@ -244,7 +259,9 @@ kdump_setup_vlan() { # $1: netdev name kdump_setup_znet() { local _options="" - . /etc/sysconfig/network-scripts/ifcfg-$1 + + source_ifcfg_file $1 + for i in $OPTIONS; do _options=${_options},$i done