X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=components%2F9990-overlay.sh;h=77000d1cccb25c2f06e75e12a8012ebe840ce474;hb=14f658f90367f29d20e4fed7ad3a228994057e58;hp=54b75e50d4c887f7bb403e2507f758cb48926f16;hpb=f2dcec3f21086a557db86ae928295474be79d35b;p=live-boot-grml.git diff --git a/components/9990-overlay.sh b/components/9990-overlay.sh index 54b75e5..77000d1 100755 --- a/components/9990-overlay.sh +++ b/components/9990-overlay.sh @@ -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}"