diff options
author | Evgeni Golov <evgeni@grml.org> | 2014-03-29 14:28:02 +0100 |
---|---|---|
committer | Daniel Baumann <daniel@laptop.127011.net> | 2014-03-29 14:29:40 +0100 |
commit | e31d7cec9e48617a7509bab38cac32958f431d4e (patch) | |
tree | cfdb1c66522f518e3d6800340bff7e8d17e767a5 /components/9990-netbase.sh | |
parent | 5c45c7b9faa2b6cc118d5efee4e96bb98dfed4ab (diff) | |
download | live-boot-e31d7cec9e48617a7509bab38cac32958f431d4e.tar.gz live-boot-e31d7cec9e48617a7509bab38cac32958f431d4e.zip |
Supporting resolvconf in the squashfs.
When resolvconf is used in the squashfs, /etc/resolv.conf is a symlink
to the generated version. Depending on the size of the squashfs and
other factors, sometimes we try to write to /etc/resolv.conf while it
still points to nirvana, as resolvconf did not generate it yet.
Instead of being racy and writing to a file which will be regenerated
anyways, let's detect resolvconf and write to its base file instead.
Initial detection idea by Mika Prokop <mika@grml.org>
Diffstat (limited to 'components/9990-netbase.sh')
-rwxr-xr-x | components/9990-netbase.sh | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/components/9990-netbase.sh b/components/9990-netbase.sh index af3522f..a32a47b 100755 --- a/components/9990-netbase.sh +++ b/components/9990-netbase.sh @@ -16,7 +16,12 @@ Netbase () log_begin_msg "Preconfiguring networking" IFFILE="/root/etc/network/interfaces" - DNSFILE="/root/etc/resolv.conf" + if [ -L /root/etc/resolv.conf ] ; then + # assume we have resolvconf + DNSFILE="/root/etc/resolvconf/resolv.conf.d/base" + else + DNSFILE="/root/etc/resolv.conf" + fi if [ "${STATICIP}" = "frommedia" ] && [ -e "${IFFILE}" ] then @@ -102,7 +107,7 @@ EOF done fi - if [ ! -f /root/etc/resolv.conf ] || [ -z "$(cat /root/etc/resolv.conf)" ] + if [ ! -f "${DNSFILE}" ] || [ -z "$(cat ${DNSFILE})" ] then if [ -f /netboot.config ] then @@ -112,7 +117,7 @@ EOF rc_search=$(cat netboot.config | awk '/domain/ { print $3 }') rc_server0="$(cat netboot.config | awk '/dns0/ { print $5 }')" -cat > /root/etc/resolv.conf << EOF +cat > $DNSFILE << EOF search ${rc_search} domain ${rc_search} nameserver ${rc_server0} @@ -122,10 +127,10 @@ EOF if [ "${rc_server1}" != "0.0.0.0" ] then - echo "nameserver ${rc_server1}" >> /root/etc/resolv.conf + echo "nameserver ${rc_server1}" >> $DNSFILE fi - cat /root/etc/resolv.conf >> /root/var/log/netboot.config + cat $DNSFILE >> /root/var/log/netboot.config fi fi fi |