X-Git-Url: http://git.grml.org/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Flive;h=d52ae7c61e4e10095fe4f775a16253f6827c16cb;hb=f16e48a910a229980153cafc1f2827a7e2c4ab0f;hp=26fde4dbe8cdef4e980e4fdaf9384b899fd43637;hpb=a6a9d36d569ca73b14f197dbd5a3e06189884e27;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 26fde4d..d52ae7c 100755 --- a/scripts/live +++ b/scripts/live @@ -7,7 +7,8 @@ export PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:/usr/bin:/usr/sbin echo "/root/lib" >> /etc/ld.so.conf echo "/root/usr/lib" >> /etc/ld.so.conf -mountpoint=/live_media +mountpoint=/live/image +LIVE_MEDIA_PATH="/live" root_persistence="live-rw" home_persistence="home-rw" @@ -49,6 +50,13 @@ parse_cmdline () export DEFCONFSOLE ;; + debug) + DEBUG="Yes" + export DEBUG + + set -x + ;; + hostname=*) HOSTNAME=${x#hostname=} LIVECONF="changed" @@ -67,7 +75,7 @@ parse_cmdline () export USERFULLNAME LIVECONF ;; - ip*) + ip=*) STATICIP=${x#ip=} if [ -z "${STATICIP}" ] @@ -95,10 +103,12 @@ parse_cmdline () kmodel=*|console-setup/modelcode=*) KMODEL=${x#*=} + export KMODEL ;; koptions=*) KOPTIONS=${x#koptions=} + export KOPTIONS ;; live-getty) @@ -121,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 @@ -136,12 +151,12 @@ parse_cmdline () export MODULE ;; - netboot*) + netboot=*) NETBOOT=${x#netboot=} export NETBOOT ;; - nfsopts=) + nfsopts=*) NFSOPTS=${x#nfsopts=} export NFSOPTS ;; @@ -156,6 +171,11 @@ parse_cmdline () export NOXAUTOLOGIN ;; + nofastboot) + NOFASTBOOT="Yes" + export NOFASTBOOT + ;; + nopersistent) PERSISTENT="" export PERSISTENT @@ -194,6 +214,11 @@ parse_cmdline () export SHOWMOUNTS ;; + timezone=*) + TIMEZONE="${x#timezone=}" + export TIMEZONE + ;; + todisk=*) TODISK=${x#todisk=} export TODISK @@ -204,6 +229,16 @@ parse_cmdline () export TORAM ;; + union=*) + UNIONTYPE="${x#union=}" + export UNIONTYPE + ;; + + utc=*) + UTC="${x#utc=}" + export UTC + ;; + xdebconf) XDEBCONF="Yes" export XDEBCONF @@ -233,6 +268,13 @@ parse_cmdline () if [ -z "${MODULE}" ] then MODULE="filesystem" + export MODULE + fi + + if [ -z "${UNIONTYPE}" ] + then + UNIONTYPE="unionfs" + export UNIONTYPE fi } @@ -240,11 +282,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 @@ -281,11 +323,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 @@ -366,6 +408,14 @@ do_netmount() { NFSROOT=${ROOTSERVER}:${ROOTPATH} fi + # source relevant ipconfig output + . /tmp/net-${DEVICE}.conf + export HOSTNAME + + if [ "${NFSROOT#*:}" = "$NFSROOT" ] && [ "$NETBOOT" != "cifs" ]; then + NFSROOT=${ROOTSERVER}:${NFSROOT} + fi + [ "$quiet" != "y" ] && log_begin_msg "Trying netboot from ${NFSROOT}" if [ "${NETBOOT}" != "nfs" ] && do_cifsmount ; then @@ -520,7 +570,7 @@ setup_unionfs() { image_directory="$1" rootmnt="$2" - modprobe "${MP_QUIET}" -b unionfs + modprobe "${MP_QUIET}" -b ${UNIONTYPE} # run-init can't deal with images in a subdir, but we're going to # move all of these away before it runs anyway. No, we're not, @@ -604,7 +654,7 @@ setup_unionfs() { mount ${cowdevice} -t ${cow_fstype} -o rw /cow || panic "Can not mount $cowdevice on /cow" - mount -t unionfs -o dirs=/cow=rw:$rofsstring unionfs "$rootmnt" || panic "Unionfs mount failed" + mount -t ${UNIONTYPE} -o dirs=/cow=rw:$rofsstring ${UNIONTYPE} "$rootmnt" || panic "${UNIONTYPE} mount failed" # Adding other custom mounts if [ -n "${PERSISTENT}" ]; then @@ -635,8 +685,8 @@ setup_unionfs() { fi # shows cow fs on /cow for use by live-snapshot - mkdir -p "${rootmnt}/cow" - mount -o bind /cow "${rootmnt}/cow" + mkdir -p "${rootmnt}/live/cow" + mount -o bind /cow "${rootmnt}/live/cow" } check_dev () @@ -769,7 +819,7 @@ mountroot() { live_dest="${TODISK}" fi if [ "${live_dest}" ]; then - log_begin_msg "Copying live_media to ${live_dest}" + log_begin_msg "Copying live media to ${live_dest}" copy_live_to "${livefs_root}" "${live_dest}" log_end_msg fi