X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=components%2F9990-overlay.sh;h=8350502460d9bead4f9cb68d5227887368eefcd8;hb=HEAD;hp=25192c5476fba004c0008180b9351504976d7c3a;hpb=5314f34b98a48f324a5e2dbf090837c252f27fee;p=live-boot-grml.git diff --git a/components/9990-overlay.sh b/components/9990-overlay.sh index 25192c5..8350502 100755 --- a/components/9990-overlay.sh +++ b/components/9990-overlay.sh @@ -15,12 +15,7 @@ setup_unionfs () 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, - # put them in / since move-mounting them into / breaks mono and - # some other apps. - - croot="/" + croot="/run/live/rootfs" # Let's just mount the read-only file systems first rootfslist="" @@ -110,7 +105,7 @@ setup_unionfs () ;; esac - mpoint="${croot}/${imagename}" + mpoint=$(trim_path "${croot}/${imagename}") rootfslist="${mpoint} ${rootfslist}" mkdir -p "${mpoint}" @@ -135,8 +130,7 @@ setup_unionfs () # tmpfs file systems touch /etc/fstab - mkdir -p /live/overlay - mount -t tmpfs tmpfs /live/overlay + mkdir -p /run/live/overlay # Looking for persistence devices or files if [ -n "${PERSISTENCE}" ] && [ -z "${NOPERSISTENCE}" ] @@ -190,7 +184,7 @@ setup_unionfs () if is_in_comma_sep_list overlay ${PERSISTENCE_METHOD} then - overlays="${old_root_overlay_label} ${old_home_overlay_label} ${custom_overlay_label} ${old_custom_overlay_label}" + overlays="${custom_overlay_label}" fi local overlay_devices @@ -201,29 +195,15 @@ setup_unionfs () do 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 + for overlay_label in ${custom_overlay_label} + do + case ${media} in + ${overlay_label}=*) + device="${media#*=}" + overlay_devices="${overlay_devices} ${device}" + ;; + esac + done done fi elif [ -n "${NFS_COW}" ] && [ -z "${NOPERSISTENCE}" ] @@ -257,16 +237,16 @@ setup_unionfs () then cowdevice="tmpfs" cow_fstype="tmpfs" - cow_mountopt="rw,noatime,mode=755" + cow_mountopt="rw,noatime,mode=755,size=${OVERLAY_SIZE:-50%}" fi if [ -n "${PERSISTENCE_READONLY}" ] && [ "${cowdevice}" != "tmpfs" ] then - mount -t tmpfs -o rw,noatime,mode=755 tmpfs "/live/overlay" - root_backing="/live/persistence/$(basename ${cowdevice})-root" + mount -t tmpfs -o rw,noatime,mode=755,size=${OVERLAY_SIZE:-50%} tmpfs "/run/live/overlay" + root_backing="/run/live/persistence/$(basename ${cowdevice})-root" mkdir -p ${root_backing} else - root_backing="/live/overlay" + root_backing="/run/live/overlay" fi if [ "${cow_fstype}" = "nfs" ] @@ -291,7 +271,7 @@ setup_unionfs () panic "only one RO file system supported with exposedroot: ${rootfslist}" fi - mount --bind ${rootfs} ${rootmnt} || \ + mount -o bind ${rootfs} ${rootmnt} || \ panic "bind mount of ${rootfs} failed" if [ -z "${SKIP_UNION_MOUNTS}" ] @@ -305,9 +285,9 @@ setup_unionfs () fi for dir in ${cow_dirs}; do - unionmountpoint="${rootmnt}${dir}" + unionmountpoint=$(trim_path "${rootmnt}${dir}") mkdir -p ${unionmountpoint} - cow_dir="/live/overlay${dir}" + cow_dir=$(trim_path "/run/live/overlay${dir}") rootfs_dir="${rootfs}${dir}" mkdir -p ${cow_dir} if [ -n "${PERSISTENCE_READONLY}" ] && [ "${cowdevice}" != "tmpfs" ] @@ -330,21 +310,11 @@ setup_unionfs () chmod 1777 "${rootmnt}"/tmp fi - live_rootfs_list="" - for d in ${rootfslist} - do - live_rootfs="/live/rootfs/${d##*/}" - live_rootfs_list="${live_rootfs_list} ${live_rootfs}" - mkdir -p "${live_rootfs}" - case "${d}" in - *.dir) - # do nothing # mount -o bind "${d}" "${live_rootfs}" - ;; - *) - mount -o move "${d}" "${live_rootfs}" - ;; - esac - done + # Correct the permission of /var/tmp: + if [ -d "${rootmnt}/var/tmp" ] + then + chmod 1777 "${rootmnt}"/var/tmp + fi # Adding custom persistence if [ -n "${PERSISTENCE}" ] && [ -z "${NOPERSISTENCE}" ] @@ -356,7 +326,7 @@ setup_unionfs () # Gather information about custom mounts from devies detected as overlays get_custom_mounts ${custom_mounts} ${overlay_devices} - [ -n "${LIVE_BOOT_DEBUG}" ] && cp ${custom_mounts} "/lib/live/mount/persistence" + [ -n "${LIVE_BOOT_DEBUG}" ] && cp ${custom_mounts} "/run/live/persistence" # Now we do the actual mounting (and symlinking) local used_overlays @@ -373,9 +343,4 @@ setup_unionfs () fi done fi - - # ensure that a potentially stray tmpfs gets removed - # otherways, initramfs-tools is unable to remove /live - # and fails to boot - umount /live/overlay > /dev/null 2>&1 || true }