X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=components%2F9990-overlay.sh;h=77000d1cccb25c2f06e75e12a8012ebe840ce474;hb=refs%2Ftags%2Fdebian%2F5.0_a4-1%2Bgrml.1;hp=316a21d2cc8b6efd7609584b11186e4e505def81;hpb=7565361fef5dda9d60bb7540e408630caded4bd1;p=live-boot-grml.git diff --git a/components/9990-overlay.sh b/components/9990-overlay.sh index 316a21d..77000d1 100755 --- a/components/9990-overlay.sh +++ b/components/9990-overlay.sh @@ -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}"