From 51cfe4f81c97c9bf5cbc291451486da72106122f Mon Sep 17 00:00:00 2001 From: Minfei Huang Date: Tue, 30 Jun 2015 17:45:15 +0800 Subject: [PATCH] dracut-module-setup: Apply the manual DNS to the 2nd kernel Now Kdump will ingore the DNS config in /etc/resolv.conf, when it generates the initram. And most users do not concern about this issue, because they never use deployment tools to configure machines environment, like puppet. It is more convenient to add the DNS config to /etc/resolv.conf for people who use deployment tools to configure machines concurrently. Signed-off-by: Minfei Huang Acked-by: Dave Young Acked-by: Baoquan He --- dracut-module-setup.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 74d6fcd..b4f3413 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -64,10 +64,25 @@ kdump_is_vlan() { # $1: netdev name kdump_setup_dns() { - _dnsfile=${initdir}/etc/cmdline.d/42dns.conf + local _nameserver _dns + local _dnsfile=${initdir}/etc/cmdline.d/42dns.conf . /etc/sysconfig/network-scripts/ifcfg-$1 + [ -n "$DNS1" ] && echo "nameserver=$DNS1" > "$_dnsfile" [ -n "$DNS2" ] && echo "nameserver=$DNS2" >> "$_dnsfile" + + while read content; + do + _nameserver=$(echo $content | grep ^nameserver) + [ -z "$_nameserver" ] && continue + + _dns=$(echo $_nameserver | cut -d' ' -f2) + [ -z "$_dns" ] && continue + + if [ ! -f $_dnsfile ] || [ ! $(cat $_dnsfile | grep -q $_dns) ]; then + echo "nameserver=$_dns" >> "$_dnsfile" + fi + done < "/etc/resolv.conf" } #$1: netdev name