X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive;h=e2489373255df46c1b698cc500fa3f8c5619af6c;hb=268ad5d5b86fa0d7d7202a96113ef5167d855ec7;hp=f59ae71da55275bdf73ac3edac16a6495603cab9;hpb=790fb6908a3d6a93380107ea0f95d77c21f6a2cc;p=live-boot-grml.git diff --git a/scripts/live b/scripts/live index f59ae71..e248937 100755 --- a/scripts/live +++ b/scripts/live @@ -11,12 +11,6 @@ mountpoint="/live/image" alt_mountpoint="/media" LIVE_MEDIA_PATH="live" -root_overlay_label="full-ov" -custom_overlay_label="custom-ov" -root_snapshot_label="live-sn" -home_snapshot_label="home-sn" -persistence_list="live.persist" - USERNAME="user" USERFULLNAME="Live user" HOSTNAME="host" @@ -1007,7 +1001,7 @@ setup_unionfs () if echo ${PERSISTENT_METHOD} | grep -qe "\" then - overlays="${root_overlay_label} ${custom_overlay_label}" + overlays="${root_overlay_label} ${old_root_overlay_label} ${old_home_overlay_label} ${custom_overlay_label}" fi if echo ${PERSISTENT_METHOD} | grep -qe "\" @@ -1019,11 +1013,11 @@ setup_unionfs () local home_snapshot_label="" local root_overlay_label="" local overlay_devices="" - for media in $(find_persistent_media "${overlays}" "${snapshots}" "${blacklistdev}" "${whitelistdev}") + for media in $(find_persistent_media "${overlays}" "${snapshots}" "${whitelistdev}") do media="$(echo ${media} | tr ":" " ")" case ${media} in - ${root_snapshot_label}=*) + ${root_snapshot_label}=*|${old_root_snapshot_label}=*) if [ -z "${root_snapdata}" ] then root_snapdata="${media#*=}" @@ -1038,13 +1032,18 @@ setup_unionfs () home_snapdata="${media#*=}" fi ;; - ${root_overlay_label}=*) + ${root_overlay_label}=*|${old_root_overlay_label}=*) if [ -z "${root_overlay_device}" ] then device="${media#*=}" root_overlay_device="${device}" fi ;; + ${old_home_overlay_label}=*) + device="${media#*=}" + fix_home_rw_compatibility ${device} + overlay_devices="${overlay_devices} ${device}" + ;; ${custom_overlay_label}=*) device="${media#*=}" overlay_devices="${overlay_devices} ${device}" @@ -1220,18 +1219,28 @@ setup_unionfs () # Adding custom persistent if [ -n "${PERSISTENT}" ] && [ -z "${NOPERSISTENT}" ] then - local custom_mounts="/custom_mounts.list" + local custom_mounts="/tmp/custom_mounts.list" rm -rf ${custom_mounts} 2> /dev/null # Gather information about custom mounts from devies detected as overlays - get_custom_mounts ${overlay_devices} ${custom_mounts} ${rootmnt} + get_custom_mounts ${custom_mounts} ${overlay_devices} - [ "${DEBUG}" = "Yes" ] && cp ${custom_mounts} "${rootmnt}/live/persistent" + [ -n "${DEBUG}" ] && cp ${custom_mounts} "${rootmnt}/live/persistent" # Now we do the actual mounting (and symlinking) - do_custom_mounts ${custom_mounts} ${rootmnt} + local used_overlays="" + used_overlays=$(activate_custom_mounts ${custom_mounts}) rm ${custom_mounts} + # Close unused overlays (e.g. due to missing $persistence_list) + for overlay in ${overlay_devices} + do + if echo ${used_overlays} | grep -qve "^\(.* \)\?${device}\( .*\)\?$" + then + close_persistent_media ${overlay} + fi + done + # Look for other snapshots to copy in try_snap "${root_snapdata}" "${rootmnt}" "ROOT" # This second type should be removed when snapshot grow smarter