diff -urN old/etc/initrd.scripts new/etc/initrd.scripts --- old/defaults/initrd.scripts 2022-08-27 08:25:26.419964286 +0000 +++ new/defaults/initrd.scripts 2022-08-27 08:19:57.716641792 +0000 @@ -818,6 +818,8 @@ local overlay=/mnt/overlay local upperdir="${overlay}/.upper" local workdir="${overlay}/.work" + local persist="${overlay}/.persist" + local persist_dev=/mnt/persist local static=/mnt/livecd run_debug_shell overlayfs @@ -832,17 +834,33 @@ mount -t squashfs -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${static}" mount -t tmpfs none "${overlay}" - mkdir "${upperdir}" "${workdir}" + mkdir "${upperdir}" "${workdir}" "${persist}" + + if [ -n "${overlayfs_persist}" ]; then + if [ -n "${overlayfs_persist_dev}" ]; then + mkdir "${persist_dev}" + findmediamount "persist" "${overlayfs_persist}" "PERSIST" "${persist_dev}" ${overlay_persist_dev} + if [ -f "${persist_dev}/${overlayfs_persist}" ]; then + persist_path="${persist_dev}/${overlayfs_persist}" + fi + elif [ -n "${ISOBOOT}" ] && [ -f "/mnt/iso/${overlayfs_persist}" ]; then + persist_path="/mnt/iso/${overlayfs_persist}" + fi + + if [ -n "${persist_path}" ]; then + mount -t squashfs -o loop,ro "${persist_path}" "${persist}" + fi + fi is_union_modules overlayfs - run mount -t overlay overlay -o lowerdir="${static}${mod_path}",upperdir="${upperdir}",workdir="${workdir}" "${NEW_ROOT}" + run mount -t overlay overlay -o lowerdir="${persist}:${static}${mod_path}",upperdir="${upperdir}",workdir="${workdir}" "${NEW_ROOT}" [ ! -d "${NEW_ROOT}${overlay}" ] && mkdir -p "${NEW_ROOT}${overlay}" [ ! -d "${NEW_ROOT}${static}" ] && mkdir -p "${NEW_ROOT}${static}" - echo "overlay / overlay defaults 0 0" > "${NEW_ROOT}"/etc/fstab + [ ! -f ${persist}/etc/fstab ] && echo "overlay / overlay defaults 0 0" > "${NEW_ROOT}"/etc/fstab - for i in "${overlay}" "${static}" + for i in "${overlay}" "${static}" "${persist}" do run mount --bind "${i}" "${NEW_ROOT}${i}" done diff -urN old/init new/init --- old/defaults/linuxrc 2022-08-27 08:25:26.456630949 +0000 +++ new/defaults/linuxrc 2022-08-27 08:16:49.853314664 +0000 @@ -429,6 +429,13 @@ overlayfs_dev=${x#*=} fi ;; + # Allow user to specify persistent image on top of image.squashfs + overlayfs_persist\=*) + overlayfs_persist=${x#*=} + ;; + overlayfs_persist_dev\=*) + overlayfs_persist_dev=${x#*=} + ;; # Allow user to specify the modules location overlayfs.modules\=*) overlayfs_modules_dir=${x#*=}