From: Harald Hoyer Date: Fri, 17 Aug 2018 10:50:29 +0000 (+0200) Subject: ifcfg/write-ifcfg.sh: aggregate resolv.conf X-Git-Tag: 049~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee18dd2b88d6767902d442baa92c95f7be69c265;p=thirdparty%2Fdracut.git ifcfg/write-ifcfg.sh: aggregate resolv.conf The old code used /tmp/net.$netif.resolv.conf with $netif being randomly chosen. As it is not known which nameserver have which priority, just sort them and deduplicate. --- diff --git a/modules.d/45ifcfg/module-setup.sh b/modules.d/45ifcfg/module-setup.sh index 6791985aa..c89def3e7 100755 --- a/modules.d/45ifcfg/module-setup.sh +++ b/modules.d/45ifcfg/module-setup.sh @@ -14,6 +14,7 @@ depends() { # called by dracut install() { + inst_binary sort inst_hook pre-pivot 85 "$moddir/write-ifcfg.sh" } diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh index 25c81be3f..3bf847a53 100755 --- a/modules.d/45ifcfg/write-ifcfg.sh +++ b/modules.d/45ifcfg/write-ifcfg.sh @@ -286,7 +286,10 @@ echo "files /etc/sysconfig/network-scripts" >> /run/initramfs/rwtab echo "files /var/lib/dhclient" >> /run/initramfs/rwtab { cp /tmp/net.* /run/initramfs/ - cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/resolv.conf + for i in /tmp/net.*.resolv.conf; do + [ -f "$i" ] && cat "$i" + done | sort -u > /run/initramfs/state/etc/resolv.conf + [ -s /run/initramfs/state/etc/resolv.conf ] || rm -f /run/initramfs/state/etc/resolv.conf copytree /tmp/ifcfg /run/initramfs/state/etc/sysconfig/network-scripts cp /tmp/ifcfg-leases/* /run/initramfs/state/var/lib/dhclient } > /dev/null 2>&1