X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=c5f4d503e10cc51f04fed837114658b0b8035322;hb=274ce8e4e2b902e4e7b4871c284cee0285cf18a6;hp=18881afba40d72573347ab799ec5f7260f0fc910;hpb=f4adc321a37ab2d885eca2355467215f9d43b96e;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index 18881af..c5f4d50 100755 --- a/scripts/live +++ b/scripts/live @@ -266,6 +266,16 @@ Arguments () export NOPERSISTENT ;; + noprompt) + NOPROMPT="Yes" + export NOPROMPT + ;; + + noprompt=*) + NOPROMPT="${ARGUMENT#noprompt=}" + export NOPROMPT + ;; + quickusbmodules) QUICKUSBMODULES="Yes" export QUICKUSBMODULES @@ -325,9 +335,9 @@ Arguments () ;; skipunion) - SKIP_UNION_MOUNTS="Yes" - export SKIP_UNION_MOUNTS - ;; + SKIP_UNION_MOUNTS="Yes" + export SKIP_UNION_MOUNTS + ;; root=*) ROOT="${ARGUMENT#root=}" @@ -1005,16 +1015,17 @@ find_snap () { # Look for ${snap_label}.* in block devices snap_label="${1}" + black_listed_devices="${2}" if [ "${PERSISTENT}" != "nofiles" ] then # search for image files - snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2 ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2") + snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2 ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2" "${black_listed_devices}") fi if [ -z "${snapdata}" ] then - snapdata=$(find_cow_device "${snap_label}") + snapdata=$(find_cow_device "${snap_label}" "${black_listed_devices}") fi echo "${snapdata}" } @@ -1266,9 +1277,16 @@ setup_unionfs () log_warning_msg "Unknown file system type on ${backdev} (${image}), assuming ${fstype}." fi - mkdir -p "${croot}/${imagename}" - log_begin_msg "Mounting \"${image}\" on \"${croot}${imagename}\" via \"${backdev}\"" - 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}" + if [ "${UNIONTYPE}" != "unionmount" ] + then + mpoint="${croot}/${imagename}" + rofsstring="${mpoint}=${roopt}:${rofsstring}" && rofslist="${mpoint} ${rofslist}" + else + mpoint="${rootmnt}" + fi + mkdir -p "${mpoint}" + log_begin_msg "Mounting \"${image}\" on \"${mpoint}\" via \"${backdev}\"" + mount -t "${fstype}" -o ro,noatime "${backdev}" "${mpoint}" || panic "Can not mount ${backdev} (${image}) on ${mpoint}" log_end_msg fi done @@ -1382,6 +1400,9 @@ setup_unionfs () cow_mountopt="rw,noatime,mode=755" fi + if [ "${UNIONTYPE}" != "unionmount" ] + then + if [ "${cow_fstype}" = "nfs" ] then log_begin_msg \ @@ -1392,6 +1413,7 @@ setup_unionfs () mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \ panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /cow" fi + fi rofscount=$(echo ${rofslist} |wc -w) @@ -1436,6 +1458,10 @@ setup_unionfs () pidof unionfs-fuse >> /dev/.initramfs/varrun/sendsigs.omit || true ;; + unionmount) + mount_full -t ${cow_fstype} -o noatime,union,${cow_mountopt} ${cowdevice} "${rootmnt}" || panic "${UNIONTYPE} ${cowdevice} on ${rootmnt} failed with option noatime,union,${cow_mountopt}" + ;; + *) mount -t ${UNIONTYPE} -o noatime,${noxino_opt}dirs=/cow=rw:${rofsstring} ${UNIONTYPE} "${rootmnt}" || panic "mount ${UNIONTYPE} on ${rootmnt} failed with option noatime,${noxino_opt}dirs=/cow=rw:${rofsstring}" ;;