diff options
| author | Daniel Baumann <daniel@debian.org> | 2007-09-23 14:46:28 +0200 |
|---|---|---|
| committer | Daniel Baumann <daniel@debian.org> | 2007-09-23 14:46:28 +0200 |
| commit | f454e1250e7deec95166035de0d1b303b99b3a0f (patch) | |
| tree | d4e1de4518082623b83a0272ae2b74228ad4d064 /scripts | |
| parent | 8421bbd25885a670de6b616da12711b5dcf68e1b (diff) | |
| download | live-boot-f454e1250e7deec95166035de0d1b303b99b3a0f.tar.gz live-boot-f454e1250e7deec95166035de0d1b303b99b3a0f.zip | |
Adding casper 1.77+debian-6.
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/casper | 14 | ||||
| -rwxr-xr-x | scripts/casper-bottom/23networking | 26 | ||||
| -rw-r--r-- | scripts/casper-helpers | 7 |
3 files changed, 43 insertions, 4 deletions
diff --git a/scripts/casper b/scripts/casper index 8cfc0df..7358f85 100644 --- a/scripts/casper +++ b/scripts/casper @@ -73,6 +73,8 @@ parse_cmdline () export LIVEMEDIA=${x#*=} ;; live-media-timeout=*) export LIVEMEDIA_TIMEOUT=${x#live-media-timeout=} ;; + live-media-offset=*) + export LIVEMEDIA_OFFSET=${x#live-media-offset=} ;; locale=*|debian-installer/locale=*) export LOCALE=${x#*=} ;; keyb=*|kbd-chooser/method=*) @@ -224,7 +226,7 @@ do_netmount() { modprobe "${MP_QUIET}" af_packet # For DHCP - ipconfig ${DEVICE} /tmp/net-${DEVICE}.conf + ipconfig ${DEVICE} /tmp/net-${DEVICE}.conf | tee /netboot.config if [ "${NFSROOT}" = "auto" ]; then NFSROOT=${ROOTSERVER}:${ROOTPATH} @@ -482,6 +484,12 @@ check_dev () if [ -z "${devname}" ]; then devname=$(sys2dev "${sysdev}") fi + + if [ -n "${LIVEMEDIA_OFFSET}" ]; then + loopdevname=$(setup_loop "${devname}" "loop" "/sys/block/loop*" "${LIVEMEDIA_OFFSET}") + devname="${loopdevname}" + fi + fstype=$(get_fstype "${devname}") if is_supported_fs ${fstype}; then mount -t ${fstype} -o ro "${devname}" $mountpoint || continue @@ -492,6 +500,10 @@ check_dev () umount $mountpoint fi fi + + if [ -n "${LIVEMEDIA_OFFSET}" ]; then + losetup -d "${loopdevname}" + fi return 1 } diff --git a/scripts/casper-bottom/23networking b/scripts/casper-bottom/23networking index 2bdf9b0..129ca35 100755 --- a/scripts/casper-bottom/23networking +++ b/scripts/casper-bottom/23networking @@ -21,7 +21,7 @@ esac log_begin_msg "$DESCRIPTION" -if [ "${STATICIP}" == "frommedia" ] && [ -e "$IFFILE" ] ; then +if [ "${STATICIP}" == "frommedia" -a -e "$IFFILE" ] ; then # will use existent /etc/network/interfaces log_end_msg exit 0 @@ -35,7 +35,7 @@ EOF udevtrigger -if [ -z "${NETBOOT}" -a -n "${STATICIP}" ] && [ "${STATICIP}" != "frommedia" ]; then +if [ -z "${NETBOOT}" -a -n "${STATICIP}" -a "${STATICIP}" != "frommedia" ]; then parsed=$(echo "${STATICIP}" | sed -e 's/:/ /g') for ifline in ${parsed}; do ifname="$(echo ${ifline} | cut -f1 -d ',')" @@ -71,6 +71,28 @@ iface ${i} inet ${method} EOF done + if [ ! -f /root/etc/resolv.conf -a -f /netboot.config ] ; then + # create a resolv.conf if it is not present + cp /netboot.config /root/var/log/netboot.config + rc_search=$(cat netboot.config | awk '/domain/{print $3}') + rc_server0=$(cat netboot.config | awk '/dns0/{print $5}') + rc_server1=$(cat netboot.config | awk '/dns0/{print $8}') + rc_server0="nameserver ${rc_server0}" + if [ "${rc_server1}" = "0.0.0.0" ]; then + rc_server1="" + else + rc_server1="nameserver ${rc_server1}" + fi + cat > /root/etc/resolv.conf <<EOF +# /etc/resolv.conf +# Autogenerated by casper +search ${rc_search} +domain ${rc_search} +${rc_server0} +${rc_server1} +EOF + cat /root/etc/resolv.conf >> /root/var/log/netboot.config + fi fi log_end_msg diff --git a/scripts/casper-helpers b/scripts/casper-helpers index cfbc3c6..f8bd206 100644 --- a/scripts/casper-helpers +++ b/scripts/casper-helpers @@ -110,6 +110,7 @@ setup_loop() { local fspath=$1 local module=$2 local pattern=$3 + local offset=$4 modprobe "${MP_QUIET}" -b "$module" udevsettle @@ -117,7 +118,11 @@ setup_loop() { for loopdev in $pattern; do if [ "$(cat $loopdev/size)" -eq 0 ]; then dev=$(sys2dev "${loopdev}") - losetup "$dev" "$fspath" + if [ -n "$offset" ]; then + losetup -o "$offset" "$dev" "$fspath" + else + losetup "$dev" "$fspath" + fi echo "$dev" return 0 fi |
