X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=f539f52343005992399de5efe743f85981896b89;hb=d0fbcc9b3747ab4339f7487e7d845b467962139c;hp=5b70b6ad8a6629dd4025919b22146092679a02a4;hpb=f92e88f44e35a6e103b607a06d9fe69b9c20a53d;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 5b70b6a..f539f52 100755 --- a/scripts/live +++ b/scripts/live @@ -8,6 +8,7 @@ echo "/root/lib" >> /etc/ld.so.conf echo "/root/usr/lib" >> /etc/ld.so.conf mountpoint=/live/image +LIVE_MEDIA_PATH="/live" root_persistence="live-rw" home_persistence="home-rw" @@ -74,7 +75,7 @@ parse_cmdline () export USERFULLNAME LIVECONF ;; - ip*) + ip=*) STATICIP=${x#ip=} if [ -z "${STATICIP}" ] @@ -130,6 +131,11 @@ parse_cmdline () export LIVE_MEDIA_OFFSET ;; + live-media-path=*) + LIVE_MEDIA_PATH="${x#live-media-path=}" + export LIVE_MEDIA_PATH + ;; + live-media-timeout=*) LIVE_MEDIA_TIMEOUT=${x#live-media-timeout=} export LIVE_MEDIA_TIMEOUT @@ -145,7 +151,7 @@ parse_cmdline () export MODULE ;; - netboot*) + netboot=*) NETBOOT=${x#netboot=} export NETBOOT ;; @@ -195,6 +201,25 @@ parse_cmdline () export LOCATION ;; + url=*) + LOCATION="${x#url=}" + + 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 + chroot /root ifup -a + chroot /root wget -P /tmp "$location" + chroot /root ifdown -a + + umount /root/sys + umount /root/proc + umount /root/dev + + LOCATION="/tmp/$(basename "$location")" + ;; + */*=*) question="${x%%=*}" value="${x#*=}" @@ -228,6 +253,11 @@ parse_cmdline () export UNIONTYPE ;; + utc=*) + UTC="${x#utc=}" + export UTC + ;; + xdebconf) XDEBCONF="Yes" export XDEBCONF @@ -271,11 +301,11 @@ is_live_path() { DIRECTORY="${1}" - if [ -d "${DIRECTORY}"/live ] + if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ] then for FILESYSTEM in squashfs ext2 ext3 xfs dir do - if [ "`echo ${DIRECTORY}/live/*.${FILESYSTEM}`" != "${DIRECTORY}/live/*.${FILESYSTEM}" ] + if [ "`echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}`" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ] then return 0 fi @@ -312,11 +342,11 @@ match_files_in_dir() { mount_images_in_directory() { directory="$1" rootmnt="$2" - if match_files_in_dir "$directory/live/*.squashfs" || - match_files_in_dir "$directory/live/*.ext2" || - match_files_in_dir "$directory/live/*.ext3" || - match_files_in_dir "$directory/live/*.dir"; then - setup_unionfs "$directory/live" "$rootmnt" + if match_files_in_dir "$directory/${LIVE_MEDIA_PATH}/*.squashfs" || + match_files_in_dir "$directory/${LIVE_MEDIA_PATH}/*.ext2" || + match_files_in_dir "$directory/${LIVE_MEDIA_PATH}/*.ext3" || + match_files_in_dir "$directory/${LIVE_MEDIA_PATH}/*.dir"; then + setup_unionfs "$directory/${LIVE_MEDIA_PATH}" "$rootmnt" else : fi @@ -401,7 +431,7 @@ do_netmount() { . /tmp/net-${DEVICE}.conf export HOSTNAME - if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then + if [ "${NFSROOT#*:}" = "$NFSROOT" ] && [ "$NETBOOT" != "cifs" ]; then NFSROOT=${ROOTSERVER}:${NFSROOT} fi