diff options
-rwxr-xr-x | components/9990-misc-helpers.sh | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/components/9990-misc-helpers.sh b/components/9990-misc-helpers.sh index 9318a4b..e58f283 100755 --- a/components/9990-misc-helpers.sh +++ b/components/9990-misc-helpers.sh @@ -1313,13 +1313,20 @@ do_union () then panic "overlay needs at least one lower filesystem (read-only branch)." fi - # overlayfs requires: - # + a workdir to become mounted - # + workdir and upperdir to reside under the same mount - # + workdir and upperdir to be in separate directories - mkdir "${unionrw}/rw" - mkdir "${unionrw}/work" - unionmountopts="-o noatime,lowerdir=${unionro},upperdir=${unionrw}/rw,workdir=${unionrw}/work" + unionmountopts="-o noatime,lowerdir=${unionro},upperdir=${unionrw}" + if ! mount -t ${UNIONTYPE} ${unionmountopts} ${UNIONTYPE} "${unionmountpoint}" 2>/dev/null + then + # Ref: kiwi from OpenSuse kiwi-7.02.18-1.1 + # overlayfs in version >= v22 behaves differently + # + renamed from overlayfs to overlay + # + requires a workdir to become mounted + # + requires workdir and upperdir to reside under the same mount + # + requires workdir and upperdir to be in separate subdirs + mkdir ${unionrw}/rw + mkdir ${unionrw}/work + unionmountopts="-o noatime,lowerdir=${unionro},upperdir=${unionrw}/rw,workdir=${unionrw}/work" + mount -t ${UNIONTYPE} ${unionmountopts} ${UNIONTYPE} "${unionmountpoint}" + fi ;; esac |