From 14f658f90367f29d20e4fed7ad3a228994057e58 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Fri, 26 Jun 2015 15:06:37 +0200 Subject: [PATCH] restore support for old persistence media --- components/9990-aaa-fixme.sh | 3 +++ components/9990-misc-helpers.sh | 26 ++++++++++++++++++++++++++ components/9990-overlay.sh | 19 ++++++++++++++++++- 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/components/9990-aaa-fixme.sh b/components/9990-aaa-fixme.sh index c6b7082..d1181e6 100755 --- a/components/9990-aaa-fixme.sh +++ b/components/9990-aaa-fixme.sh @@ -26,5 +26,8 @@ then export PATH fi +old_root_overlay_label="live-rw" +old_home_overlay_label="home-rw" custom_overlay_label="persistence" +old_custom_overlay_label="custom-ov" persistence_list="persistence.conf" diff --git a/components/9990-misc-helpers.sh b/components/9990-misc-helpers.sh index 6f7b599..90aa6c7 100755 --- a/components/9990-misc-helpers.sh +++ b/components/9990-misc-helpers.sh @@ -1646,6 +1646,32 @@ activate_custom_mounts () echo ${used_devices} } +fix_backwards_compatibility () +{ + local device dir opt backing include_list + device=${1} + dir=${2} + opt=${3} + + if [ -n "${PERSISTENCE_READONLY}" ] + then + return + fi + + backing="$(mount_persistence_media ${device})" + if [ -z "${backing}" ] + then + return + fi + + include_list="${backing}/${persistence_list}" + if [ ! -r "${include_list}" ] && [ ! -r "${backing}/${old_persistence_list}" ] + then + echo "# persistence backwards compatibility: +${dir} ${opt},source=." > "${include_list}" + fi +} + is_mountpoint () { directory="$1" diff --git a/components/9990-overlay.sh b/components/9990-overlay.sh index a64c78b..77000d1 100755 --- a/components/9990-overlay.sh +++ b/components/9990-overlay.sh @@ -190,7 +190,7 @@ setup_unionfs () if is_in_comma_sep_list overlay ${PERSISTENCE_METHOD} then - overlays="${custom_overlay_label}" + overlays="${old_root_overlay_label} ${old_home_overlay_label} ${custom_overlay_label} ${old_custom_overlay_label}" fi local overlay_devices @@ -202,10 +202,27 @@ setup_unionfs () media="$(echo ${media} | tr ":" " ")" case ${media} in + ${old_root_overlay_label}=*) + device="${media#*=}" + fix_backwards_compatibility ${device} / union + overlay_devices="${overlay_devices} ${device}" + ;; + + ${old_home_overlay_label}=*) + device="${media#*=}" + fix_backwards_compatibility ${device} /home bind + overlay_devices="${overlay_devices} ${device}" + ;; + ${custom_overlay_label}=*) device="${media#*=}" overlay_devices="${overlay_devices} ${device}" ;; + + ${old_custom_overlay_label}=*) + device="${media#*=}" + overlay_devices="${overlay_devices} ${device}" + ;; esac done fi -- 2.1.4