X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=418a854740b31b1c6f185d8d2d16930160fda141;hb=268c4f38f81263be2cf7a400b30008cf214bc619;hp=d3c86a20427126cd5beb6f84a47f72e654d2aab7;hpb=a5bda02d598dc48e60d42a2adf454e1681f6150d;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index d3c86a2..418a854 100755 --- a/scripts/live +++ b/scripts/live @@ -285,9 +285,9 @@ Arguments () export NOSUDO ;; - noswap) - NOSWAP="Yes" - export NOSWAP + swapon) + SWAPON="Yes" + export SWAPON ;; noupdatenotifier) @@ -538,7 +538,7 @@ mount_images_in_directory () { directory="${1}" rootmnt="${2}" - mac="${3}" + mac="${3}" if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" || @@ -607,28 +607,28 @@ copy_live_to () fstype=$(get_fstype "${dev}") freespace=$(fs_size "${dev}") else - [ "$quiet" != "y" ] && log_warning_msg "${copytodev} is not a block device." + log_warning_msg "${copytodev} is not a block device." return 1 fi fi if [ "${freespace}" -lt "${size}" ] then - [ "${quiet}" != "y" ] && log_warning_msg "Not enough free ${free_string} (${freespace}k free, ${size}k needed) to copy live media in ${copytodev}." + log_warning_msg "Not enough free ${free_string} (${freespace}k free, ${size}k needed) to copy live media in ${copytodev}." return 1 fi # begin copying (or uncompressing) mkdir "${copyto}" echo "mount -t ${fstype} ${mount_options} ${dev} ${copyto}" - mount -t "${fstype}" ${mount_options} "${dev}" "${copyto}" + mount -n -t "${fstype}" ${mount_options} "${dev}" "${copyto}" if [ "${extension}" = "tgz" ] then cd "${copyto}" tar zxf "${copyfrom}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})" rm -f "${copyfrom}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})" - mount -r -o move "${copyto}" "${rootmnt}" + mount -n -r -o move "${copyto}" "${rootmnt}" cd "${OLDPWD}" else if [ -n "${MODULETORAMFILE}" ] @@ -640,7 +640,7 @@ copy_live_to () livefs_root umount ${copyfrom} - mount -r -o move ${copyto} ${copyfrom} + mount -n -r -o move ${copyto} ${copyfrom} fi rmdir ${copyto} @@ -688,7 +688,7 @@ do_netmount () NFSROOT=${ROOTSERVER}:${NFSROOT} fi - [ "${quiet}" != "y" ] && log_begin_msg "Trying netboot from ${NFSROOT}" + log_begin_msg "Trying netboot from ${NFSROOT}" if [ "${NETBOOT}" != "nfs" ] && do_cifsmount then @@ -700,7 +700,7 @@ do_netmount () rc=0 fi - [ "${quiet}" != "y" ] && log_end_msg + log_end_msg return ${rc} } @@ -708,7 +708,7 @@ do_httpmount () { rc=1 dest="${mountpoint}/${LIVE_MEDIA_PATH}" - mount -t ramfs ram "${mountpoint}" + mount -n -t ramfs ram "${mountpoint}" mkdir -p "${dest}" for webfile in HTTPFS FTPFS FETCH @@ -725,20 +725,17 @@ do_httpmount () case "$url" in tftp*) ip="$(dirname $url | sed -e 's|tftp://||g')" - [ "${quiet}" != "y" ] && log_begin_msg "Trying tftp -g -b 10240 -r $(basename ${url}) -l ${dest}/$(basename ${url}) $ip" tftp -g -b 10240 -r $(basename ${url}) -l ${dest}/$(basename ${url}) $ip ;; *) - [ "${quiet}" != "y" ] && log_begin_msg "Trying wget ${url} -O ${dest}/$(basename ${url})" wget "${url}" -O "${dest}/$(basename ${url})" ;; esac else - [ "${quiet}" != "y" ] && - log_begin_msg "Trying to mount ${url} on ${dest}/$(basename ${url})" + log_begin_msg "Trying to mount ${url} on ${dest}/$(basename ${url})" if [ "${webfile}" = "FTPFS" ] then FUSE_MOUNT="curlftpfs" @@ -755,7 +752,7 @@ do_httpmount () ;; *) - [ "${quiet}" != "y" ] && log_begin_msg "Unrecognized archive extension for ${url}" + log_begin_msg "Unrecognized archive extension for ${url}" ;; esac fi @@ -780,7 +777,7 @@ do_nfsmount () NFSOPTS="" fi - [ "${quiet}" != "y" ] && log_begin_msg "Trying nfsmount -o nolock -o ro ${NFSOPTS} ${NFSROOT} ${mountpoint}" + log_begin_msg "Trying nfsmount -o nolock -o ro ${NFSOPTS} ${NFSROOT} ${mountpoint}" # FIXME: This for loop is an ugly HACK round an nfs bug for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 @@ -805,7 +802,7 @@ do_cifsmount () CIFSOPTS="${NFSOPTS}" fi - [ "${quiet}" != "y" ] && log_begin_msg "Trying mount.cifs ${NFSROOT} ${mountpoint} ${CIFSOPTS}" + log_begin_msg "Trying mount.cifs ${NFSROOT} ${mountpoint} ${CIFSOPTS}" modprobe -q cifs if mount.cifs "${NFSROOT}" "${mountpoint}" "${CIFSOPTS}" @@ -847,7 +844,7 @@ do_snap_copy () if [ -n "${fstype}" ] then # Copying stuff... - mount -t "${fstype}" -o ro,noatime "${fromdev}" "${tomount}" + mount -n -t "${fstype}" -o ro,noatime "${fromdev}" "${tomount}" || log_warning_msg "Error in mount -n -t ${fstype} -o ro,noatime ${fromdev} ${tomount}" cp -a "${tomount}"/* ${todir} umount "${tomount}" else @@ -865,7 +862,7 @@ do_snap_copy () else return 1 - [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the snapshot ${snap_type} medium" + log_warning_msg "Unable to find the snapshot ${snap_type} medium" fi } @@ -1043,9 +1040,16 @@ setup_unionfs () panic "Unknown file system type on ${backdev} (${image})" fi + if [ -z "${fstype}" ] + then + fstype="${imagename##*.}" + log_warning_msg "Unknown file system type on ${backdev} (${image}), assuming ${fstype}." + fi + mkdir -p "${croot}/${imagename}" - echo "debug: Mounting backdev \"${backdev}\" (image = ${image}) on croot/imagename \"${croot}/${imagename}\"" - mount -t "${fstype}" -o ro,noatime "${backdev}" "${croot}/${imagename}" || panic "Can not mount ${backdev} (${image}) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" + log_begin_msg "Mounting \"${image}\" on \"${croot}${imagename}\" via \"${backdev}\"" + mount -n -t "${fstype}" -o ro,noatime "${backdev}" "${croot}/${imagename}" || panic "Can not mount ${backdev} (${image}) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" + log_end_msg fi done @@ -1096,7 +1100,7 @@ setup_unionfs () cow_fstype=$(get_fstype "${cowprobe}") cow_mountopt="rw,noatime" else - [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the persistent medium" + log_warning_msg "Unable to find the persistent medium" cowdevice="tmpfs" cow_fstype="tmpfs" cow_mountopt="rw,noatime,mode=755" @@ -1128,12 +1132,12 @@ setup_unionfs () if [ "${cow_fstype}" = "nfs" ] then - [ "${quiet}" != "y" ] && log_begin_msg \ + log_begin_msg \ "Trying nfsmount ${nfs_cow_opts} ${cowdevice} /cow" nfsmount ${nfs_cow_opts} ${cowdevice} /cow || \ panic "Can not mount ${cowdevice} (n: ${cow_fstype}) on /cow" else - mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \ + mount -n -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \ panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /cow" fi @@ -1147,7 +1151,7 @@ setup_unionfs () fi exposedrootfs=${rofslist%% } - mount --bind ${exposedrootfs} ${rootmnt} || \ + mount -n --bind ${exposedrootfs} ${rootmnt} || \ panic "bind mount of ${exposedrootfs} failed" cow_dirs='/var/tmp /var/lock /var/run /var/log /var/spool @@ -1155,21 +1159,22 @@ setup_unionfs () for dir in ${cow_dirs}; do mkdir -p /cow${dir} - mount -t ${UNIONTYPE} \ + mount -n -t ${UNIONTYPE} \ -o rw,noatime,dirs=/cow${dir}=rw:${exposedrootfs}${dir}=ro \ ${UNIONTYPE} "${rootmnt}${dir}" || \ panic "mount ${UNIONTYPE} on ${rootmnt}${dir} failed with option \ rw,noatime,dirs=/cow${dir}=rw:${exposedrootfs}${dir}=ro" done else - mount -t ${UNIONTYPE} -o noatime,dirs=/cow=rw:${rofsstring} \ + mount -n -t ${UNIONTYPE} -o noatime,dirs=/cow=rw:${rofsstring} \ ${UNIONTYPE} "${rootmnt}" || panic "mount ${UNIONTYPE} on \ ${rootmnt} failed with option noatime,dirs=/cow=rw:${rofsstring}" fi # tmpfs file systems + touch /etc/fstab mkdir -p "${rootmnt}/live" - mount -t tmpfs tmpfs ${rootmnt}/live + mount -n -t tmpfs tmpfs ${rootmnt}/live # Adding other custom mounts if [ -n "${PERSISTENT}" ] && [ -z "${NOPERSISTENT}" ] @@ -1180,10 +1185,10 @@ setup_unionfs () if [ -b "${homecow}" ] then - mount -t $(get_fstype "${homecow}") -o rw,noatime "${homecow}" "${rootmnt}/home" + mount -n -t $(get_fstype "${homecow}") -o rw,noatime "${homecow}" "${rootmnt}/home" export HOMEMOUNTED=1 # used to proper calculate free space in do_snap_copy() else - [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the persistent home medium" + log_warning_msg "Unable to find the persistent home medium" fi # Look for other snapshots to copy in @@ -1203,7 +1208,7 @@ setup_unionfs () ;; *) - mount -o move "${d}" "${rootmnt}/live/${d##*/}" + mount -n -o move "${d}" "${rootmnt}/live/${d##*/}" ;; esac done @@ -1211,7 +1216,7 @@ setup_unionfs () # shows cow fs on /cow for use by live-snapshot mkdir -p "${rootmnt}/live/cow" - mount -o move /cow "${rootmnt}/live/cow" || mount -o bind /cow "${rootmnt}/live/cow" || [ "${quiet}" != "y" ] && log_warning_msg "Unable to move or bind /cow to ${rootmnt}/live/cow" + mount -n -o move /cow "${rootmnt}/live/cow" >/dev/null 2>&1 || mount -n -o bind /cow "${rootmnt}/live/cow" || log_warning_msg "Unable to move or bind /cow to ${rootmnt}/live/cow" } check_dev () @@ -1227,7 +1232,7 @@ check_dev () if [ -d "${devname}" ] then - mount -o bind "${devname}" $mountpoint || continue + mount -n -o bind "${devname}" $mountpoint || continue if is_live_path $mountpoint then @@ -1248,7 +1253,7 @@ check_dev () if is_supported_fs ${fstype} then - mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue + mount -n -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue if is_live_path ${mountpoint} && \ ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint}) @@ -1333,12 +1338,13 @@ set_usplash_timeout () if [ -x /sbin/usplash_write ] then /sbin/usplash_write "TIMEOUT 120" - fi + else if [ -x /sbin/splashy_update ] ; then + /sbin/splashy_update "TIMEOUT 120" + fi ; fi } mountroot () { - if [ -x /scripts/local-top/cryptroot ]; then /scripts/local-top/cryptroot fi @@ -1350,12 +1356,15 @@ mountroot () tail -f live.log >&7 & tailpid="${!}" + # Ensure 'panic' function is overridden + . /scripts/live-functions + Arguments set_usplash_timeout - [ "${quiet}" != "y" ] && log_begin_msg "Running /scripts/live-premount" + log_begin_msg "Running /scripts/live-premount" run_scripts /scripts/live-premount - [ "${quiet}" != "y" ] && log_end_msg + log_end_msg # Needed here too because some things (*cough* udev *cough*) # changes the timeout @@ -1423,10 +1432,10 @@ mountroot () log_end_msg maybe_break live-bottom - [ "${quiet}" != "y" ] && log_begin_msg "Running /scripts/live-bottom" + log_begin_msg "Running /scripts/live-bottom" run_scripts /scripts/live-bottom - [ "${quiet}" != "y" ] && log_end_msg + log_end_msg exec 1>&6 6>&- exec 2>&7 7>&-