summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTails developers <amnesia@boum.org>2012-02-15 12:00:51 +0100
committerDaniel Baumann <daniel@debian.org>2012-04-05 07:45:21 +0200
commitb78990c495520b41ce163a55dee2d002ebba10de (patch)
tree863fe4d25a29bbe1a6db6bdaed5bf17e371f9c5f
parentbfec46ce25357e087378ca220b852aca1bb83e09 (diff)
downloadlive-boot-b78990c495520b41ce163a55dee2d002ebba10de.tar.gz
live-boot-b78990c495520b41ce163a55dee2d002ebba10de.zip
Add backwards compatibility for old labels: live-{rw,sn} and home-rw.
For home-rw we create a live.persist file which make old volumes completely compatible with the custom mounts system.
-rwxr-xr-xscripts/live11
-rw-r--r--scripts/live-helpers35
2 files changed, 43 insertions, 3 deletions
diff --git a/scripts/live b/scripts/live
index 5e080f9..7f76f52 100755
--- a/scripts/live
+++ b/scripts/live
@@ -1001,7 +1001,7 @@ setup_unionfs ()
if echo ${PERSISTENT_METHOD} | grep -qe "\<overlay\>"
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 "\<snapshot\>"
@@ -1017,7 +1017,7 @@ setup_unionfs ()
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#*=}"
@@ -1032,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}"
diff --git a/scripts/live-helpers b/scripts/live-helpers
index 76b94e0..abdfd64 100644
--- a/scripts/live-helpers
+++ b/scripts/live-helpers
@@ -16,8 +16,11 @@ else
fi
root_overlay_label="full-ov"
+old_root_overlay_label="live-rw"
+old_home_overlay_label="home-rw"
custom_overlay_label="custom-ov"
root_snapshot_label="live-sn"
+old_root_snapshot_label="live-sn"
home_snapshot_label="home-sn"
persistence_list="live.persist"
@@ -254,8 +257,11 @@ Arguments ()
persistent-subtext=*)
root_overlay_label="${root_overlay_label}-${ARGUMENT#persistent-subtext=}"
+ old_root_overlay_label="${old_root_overlay_label}-${ARGUMENT#persistent-subtext=}"
+ old_home_overlay_label="${old_home_overlay_label}-${ARGUMENT#persistent-subtext=}"
custom_overlay_label="${custom_overlay_label}-${ARGUMENT#persistent-subtext=}"
root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistent-subtext=}"
+ old_root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistent-subtext=}"
home_snapshot_label="${home_snapshot_label}-${ARGUMENT#persistent-subtext=}"
;;
@@ -1405,3 +1411,32 @@ do_custom_mounts () {
export PERSISTENCE_IS_ON
done < ${custom_mounts}
}
+
+fix_home_rw_compatibility ()
+{
+ local device=${1}
+
+ if [ -n "${PERSISTENT_READONLY}" ]
+ then
+ return
+ fi
+
+ local backing="$(where_is_mounted ${device})"
+ if [ -z "${backing}" ]
+ then
+ backing="${rootmnt}/live/persistent/$(basename ${device})"
+ mkdir -p "${backing}"
+ local device_fstype="$(get_fstype ${device})"
+ local device_mount_opts="rw,noatime"
+ if ! mount -t "${device_fstype}" -o "${device_mount_opts}" "${device}" "${backing}" >/dev/null 2>&1
+ then
+ return
+ fi
+
+ local include_list="${backing}/${persistence_list}"
+ if [ ! -r "${include_list}" ]
+ then
+ echo "# home-rw backwards compatibility:
+. /home" > "${include_list}"
+ fi
+}