summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2010-07-23 16:20:32 +0200
committerDaniel Baumann <daniel@debian.org>2011-03-09 17:53:27 +0100
commit66d1235abf2dbc4062ed5bb7aef28d99a5a38eb2 (patch)
tree378444e7290364f45440790a239ebcb801e43e0a
parentda460be0437855fb745d0675c78186eba2ab549b (diff)
downloadlive-boot-66d1235abf2dbc4062ed5bb7aef28d99a5a38eb2.tar.gz
live-boot-66d1235abf2dbc4062ed5bb7aef28d99a5a38eb2.zip
Adding support for resolving DNS names from initramfs, thanks to Michal Suchanek <hramrach@centrum.cz> for initial patch which this is based on (Closes: #589659).
-rwxr-xr-xhooks/live25
-rwxr-xr-xscripts/live16
2 files changed, 41 insertions, 0 deletions
diff --git a/hooks/live b/hooks/live
index d87bfe7..34d6eab 100755
--- a/hooks/live
+++ b/hooks/live
@@ -24,6 +24,20 @@ esac
# live-boot hook
+# Reading configuration file from filesystem
+if [ -e /etc/live/boot.conf ]
+then
+ . /etc/live/boot.conf
+fi
+
+if ls /etc/live/boot.conf.d/* > /dev/null 2>&1
+then
+ for _FILE in /etc/live/boot.conf.d/*
+ do
+ . ${_FILE}
+ done
+fi
+
# Handling live-boot
# Configuration
@@ -226,3 +240,14 @@ then
manual_add_modules iscsi_tcp
manual_add_modules crc32c
fi
+
+if [ "${LIVE_DNS}" = "true" ]
+then
+ #copy_exec /lib/libnss_files.so.* /lib # /etc/hosts and /etc/passwd
+ copy_exec /lib/libnss_dns.so.* /lib # DNS server
+ #copy_exec /lib/libnss_compat.so.* /lib # /etc/passwd
+
+ # Configuration file - may be needed if /etc/hosts is used.
+ #mkdir -p $DESTDIR/etc
+ #cp -p /etc/nsswitch.conf $DESTDIR/etc
+fi
diff --git a/scripts/live b/scripts/live
index f5f4ad2..295b75f 100755
--- a/scripts/live
+++ b/scripts/live
@@ -639,6 +639,22 @@ do_netsetup ()
HWADDR="$(cat /sys/class/net/${DEVICE}/address)"
fi
+ if [ ! -e "/etc/resolv.conf" ]
+ then
+ echo "Creating /etc/resolv.conf"
+
+ if [ -n "${DNSDOMAIN}" ]
+ then
+ echo "domain ${DNSDOMAIN}" > /etc/resolv.conf
+ echo "search ${DNSDOMAIN}" > /etc/resolv.conf
+ fi
+
+ for i in ${IPV4DNS0} ${IPV4DNS1} ${IPV4DNS1}
+ do
+ echo "nameserver $i" >> /etc/resolv.conf
+ done
+ fi
+
# Check if we have a network device at all
if ! ls /sys/class/net/"$DEVICE" > /dev/null 2>&1 && \
! ls /sys/class/net/eth0 > /dev/null 2>&1 && \