Adding support for resolving DNS names from initramfs, thanks to Michal Suchanek...
authorDaniel Baumann <daniel@debian.org>
Fri, 23 Jul 2010 14:20:32 +0000 (16:20 +0200)
committerDaniel Baumann <daniel@debian.org>
Fri, 23 Jul 2010 14:20:32 +0000 (16:20 +0200)
hooks/live
scripts/live

index d87bfe7..34d6eab 100755 (executable)
@@ -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
index f5f4ad2..295b75f 100755 (executable)
@@ -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 && \