Support setting upperdir tmpfs size with overlay-size boot parameter
[live-boot-grml.git] / components / 9990-overlay.sh
index 9282276..db6a44e 100755 (executable)
@@ -110,13 +110,15 @@ setup_unionfs ()
                                                ;;
                                esac
 
-                               mpoint="${croot}/${imagename}"
+                               mpoint=$(trim_path "${croot}/${imagename}")
                                rootfslist="${mpoint} ${rootfslist}"
 
                                mkdir -p "${mpoint}"
                                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
@@ -238,12 +240,12 @@ 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"
+               mount -t tmpfs -o rw,noatime,mode=755,size=${OVERLAY_SIZE:-50%} tmpfs "/live/overlay"
                root_backing="/live/persistence/$(basename ${cowdevice})-root"
                mkdir -p ${root_backing}
        else
@@ -272,7 +274,7 @@ setup_unionfs ()
                        panic "only one RO file system supported with exposedroot: ${rootfslist}"
                fi
 
-               mount --bind ${rootfs} ${rootmnt} || \
+               mount -bind ${rootfs} ${rootmnt} || \
                        panic "bind mount of ${rootfs} failed"
 
                if [ -z "${SKIP_UNION_MOUNTS}" ]
@@ -286,9 +288,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 "/live/overlay${dir}")
                rootfs_dir="${rootfs}${dir}"
                mkdir -p ${cow_dir}
                if [ -n "${PERSISTENCE_READONLY}" ] && [ "${cowdevice}" != "tmpfs" ]
@@ -355,8 +357,8 @@ setup_unionfs ()
                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
+       # 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
 }