summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2007-09-23 14:46:28 +0200
committerDaniel Baumann <daniel@debian.org>2007-09-23 14:46:28 +0200
commitf454e1250e7deec95166035de0d1b303b99b3a0f (patch)
treed4e1de4518082623b83a0272ae2b74228ad4d064 /scripts
parent8421bbd25885a670de6b616da12711b5dcf68e1b (diff)
downloadlive-boot-f454e1250e7deec95166035de0d1b303b99b3a0f.tar.gz
live-boot-f454e1250e7deec95166035de0d1b303b99b3a0f.zip
Adding casper 1.77+debian-6.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/casper14
-rwxr-xr-xscripts/casper-bottom/23networking26
-rw-r--r--scripts/casper-helpers7
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