X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=9eaa073c5b8a093ac655410e6c98dfa790b1f588;hb=56627dfef6afd7f94f0bd8d76122eefb0b115826;hp=ac2845cd15693a4d128f75bcf4af93f7d356d958;hpb=8146bc4e2485566655d443f5b0d3b86df4e869b9;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index ac2845c..9eaa073 100755 --- a/scripts/live +++ b/scripts/live @@ -1663,7 +1663,7 @@ setup_unionfs () ;; *) log_warning_msg "Skipping custom mount with unkown option: ${opt}" - continue + continue 2 ;; esac done @@ -1695,18 +1695,28 @@ setup_unionfs () # that we won't hide a previous mount. We also ignore # duplicate destinations in a more or less arbitrary way. [ -e "${bindings}" ] && sort -k2 -sbu ${bindings} >> ${custom_mounts} - rm ${bindings} + rm -f ${bindings} # After all mounts are considered we add symlinks so they # won't be hidden by some mount. [ -e "${links}" ] && sort -k2 -sbu ${links} >> ${custom_mounts} - rm ${links} + rm -f ${links} [ "${DEBUG}" = "Yes" ] && cp ${custom_mounts} ${persistent_backing} # Now we do the actual mounting (and symlinking) while read source dest options # < ${custom_mounts} do + local opt_linkfiles="" + for opt in $(echo ${options} | tr ',' ' '); + do + case "${opt}" in + "linkfiles") + opt_linkfiles="yes" + ;; + esac + done + if mountpoint -q "${dest}"; then log_warning_msg "Skipping custom mount ${source} on ${dest}: destination is already a mount point" @@ -1745,7 +1755,7 @@ setup_unionfs () # dealing with /etc or other system dir. if [ ! -d "${source}" ] then - if [ -n "${PERSISTENT_READONLY}" ] || echo ${options} | grep -qe "\" + if [ -n "${PERSISTENT_READONLY}" ] || [ -n "${opt_linkfiles}" ] then continue fi @@ -1756,7 +1766,7 @@ setup_unionfs () if [ -z "${PERSISTENT_READONLY}" ] then - if echo ${options} | grep -qe "\"; + if [ -n "${opt_linkfiles}" ] then links_source="${source}" links_dest="${dest}" @@ -1764,7 +1774,7 @@ setup_unionfs () mount --bind "${source}" "${dest}" fi else - if echo ${options} | grep -qe "\"; + if [ -n "${opt_linkfiles}" ] then links_dest="${dest}" dest="$(mktemp -d ${persistent_backing}/links_source-XXXXXX)" @@ -1776,7 +1786,7 @@ setup_unionfs () mount -t "${UNIONTYPE}" -o "${unionmountopts}" "${UNIONTYPE}" "${dest}" fi - if echo $options | grep -qe "\"; + if [ -n "${opt_linkfiles}" ] then link_files "${links_source}" "${links_dest}" "${rootmnt}" fi