Patch by Steven Shiau <steven@nchc.org.tw>. The only changes so far are:
authorTails developers <amnesia@boum.org>
Sun, 15 Feb 2015 17:24:39 +0000 (17:24 +0000)
committerDaniel Baumann <mail@daniel-baumann.ch>
Sun, 17 May 2015 18:30:12 +0000 (20:30 +0200)
 * drop the parts of the patch that are not relevant to live-boot 5.x
 * adapt formatting to match Debian Live coding standards

components/9990-misc-helpers.sh

index 9318a4b..e58f283 100755 (executable)
@@ -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