restore support for old persistence media
[live-boot-grml.git] / components / 9990-overlay.sh
index 54b75e5..77000d1 100755 (executable)
@@ -8,13 +8,13 @@ setup_unionfs ()
        rootmnt="${2}"
        addimage_directory="${3}"
 
+       modprobe -q -b ${UNIONTYPE}
+
        if ! cut -f2 /proc/filesystems | grep -q "^${UNIONTYPE}\$"
        then
                panic "${UNIONTYPE} not available."
        fi
 
-       modprobe -q -b ${UNIONTYPE}
-
        # run-init can't deal with images in a subdir, but we're going to
        # move all of these away before it runs anyway.  No, we're not,
        # put them in / since move-mounting them into / breaks mono and
@@ -117,6 +117,8 @@ setup_unionfs ()
                                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
+                       else
+                               log_warning_msg "Could not find image '${image}'. Most likely it is listed in a .module file, perhaps by mistake."
                        fi
                done
        else
@@ -188,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
@@ -200,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
@@ -299,6 +318,9 @@ setup_unionfs ()
                fi || panic "mount ${UNIONTYPE} on ${unionmountpoint} failed with option ${unionmountopts}"
        done
 
+       # Remove persistence depending on boot parameter
+       Remove_persistence
+
        # Correct the permissions of /:
        chmod 0755 "${rootmnt}"