restore support for old persistence media
[live-boot-grml.git] / components / 9990-overlay.sh
index 316a21d..77000d1 100755 (executable)
@@ -8,16 +8,12 @@ setup_unionfs ()
        rootmnt="${2}"
        addimage_directory="${3}"
 
-       case ${UNIONTYPE} in
-               aufs|overlay)
-                       if ! cut -f2 /proc/filesystems | grep -q "^${UNIONTYPE}\$"
-                       then
-                               panic "${UNIONTYPE} not available."
-                       fi
+       modprobe -q -b ${UNIONTYPE}
 
-                       modprobe -q -b ${UNIONTYPE}
-                       ;;
-       esac
+       if ! cut -f2 /proc/filesystems | grep -q "^${UNIONTYPE}\$"
+       then
+               panic "${UNIONTYPE} not available."
+       fi
 
        # 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,
@@ -121,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
@@ -192,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
@@ -204,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
@@ -303,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}"