#! /bin/sh PREREQ="" DESCRIPTION="Loading preseed file..." prereqs () { echo "$PREREQ" } case $1 in # get pre-requisites prereqs) prereqs exit 0 ;; esac . /scripts/casper-functions load_confmodule log_begin_msg "$DESCRIPTION" if [ -e /preseed.cfg ]; then casper-set-selections /preseed.cfg fi network_started= start_network () { [ -z "$network_started" ] || return [ -z "$NETBOOT" ] || return mount -n -o bind /sys /root/sys mount -n -o bind /proc /root/proc mount -n -o bind /dev /root/dev mkdir -p /root/var/run/network # Close inherited fd's to prevent debconf-communicate from # continuing to run post-casper. chroot /root dhclient eth0 3>&- 4<&- network_started=1 } stop_network () { [ "$network_started" ] || return chroot /root ifconfig eth0 down umount /root/sys umount /root/proc umount /root/dev } locations= for x in $(cat /proc/cmdline); do case $x in preseed/file=*) locations="${x#preseed/file=} $locations" ;; file=*) locations="${x#file=} $locations" ;; url=*) url_location="${x#url=}" start_network chroot /root wget -P /tmp "$url_location" locations="/tmp/$(basename "$url_location") $locations" ;; */*\?=*) question="${x%%\?=*}" value="${x#*\?=}" casper-preseed /root "$question" "$value" false ;; */*=*) question="${x%%=*}" value="${x#*=}" casper-preseed /root "$question" "$value" ;; locale=*) value="${x#*=}" casper-preseed /root debian-installer/locale "$value" ;; esac done if [ "$locations" ]; then for item in $locations; do casper-set-selections "/root$item" done fi if db_get preseed/early_command && [ "$RET" ]; then EARLY="$RET" if db_get preseed/allow-network && [ "$RET" = true ]; then start_network fi DEBIAN_HAS_FRONTEND= DEBCONF_REDIR= \ DEBIAN_FRONTEND=noninteractive \ sh -c "$EARLY" fi stop_network # Clear out debconf database backup files to save memory. rm -f /root/var/cache/debconf/*.dat-old log_end_msg exit 0