summaryrefslogtreecommitdiffstats
path: root/modules.d/90overlayfs/mount-overlayfs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/90overlayfs/mount-overlayfs.sh')
-rwxr-xr-xmodules.d/90overlayfs/mount-overlayfs.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/modules.d/90overlayfs/mount-overlayfs.sh b/modules.d/90overlayfs/mount-overlayfs.sh
new file mode 100755
index 0000000..e1d23fb
--- /dev/null
+++ b/modules.d/90overlayfs/mount-overlayfs.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
+
+getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
+getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay=""
+
+ROOTFLAGS="$(getarg rootflags)"
+
+if [ -n "$overlayfs" ]; then
+ if [ -n "$readonly_overlay" ] && [ -h /run/overlayfs-r ]; then
+ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
+ else
+ ovlfs=lowerdir=/run/rootfsbase
+ fi
+
+ if ! strstr "$(cat /proc/mounts)" LiveOS_rootfs; then
+ mount -t overlay LiveOS_rootfs -o "$ROOTFLAGS,$ovlfs",upperdir=/run/overlayfs,workdir=/run/ovlwork "$NEWROOT"
+ fi
+fi