]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
dmsquash-live-root: Manage absent overlayfs module better.
authorFrederick Grose <fgrose@sugarlabs.org>
Mon, 3 Sep 2018 23:02:23 +0000 (19:02 -0400)
committerHarald Hoyer <harald@hoyer.xyz>
Thu, 6 Sep 2018 09:46:24 +0000 (11:46 +0200)
die when required; systemctl reload otherwise.

modules.d/90dmsquash-live/dmsquash-live-root.sh

index 330ba3e9e01ca55cabdc93371d9a3e5d0e04fc32..6324fe83a2c0d55e08aa4348ec129827d1da3c8f 100755 (executable)
@@ -146,10 +146,10 @@ do_live_overlay() {
                     [ -d /run/initramfs/overlayfs/ovlwork ]; then
                     ln -s /run/initramfs/overlayfs/overlayfs /run/overlayfs$opt
                     ln -s /run/initramfs/overlayfs/ovlwork /run/ovlwork$opt
-                    if [ -z "$overlayfs" ]; then
-                        overlayfs="yes"
-                        [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
+                    if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ]; then
+                        reloadsysrootmountunit=":>/xor_overlayfs;"
                     fi
+                    overlayfs="required"
                     setup="yes"
                 fi
             fi
@@ -157,18 +157,24 @@ do_live_overlay() {
             [ -d /run/initramfs/overlayfs$pathspec/../ovlwork ]; then
             ln -s /run/initramfs/overlayfs$pathspec /run/overlayfs$opt
             ln -s /run/initramfs/overlayfs$pathspec/../ovlwork /run/ovlwork$opt
-            if [ -z "$overlayfs" ]; then
-                overlayfs="yes"
-                [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
+            if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ]; then
+                reloadsysrootmountunit=":>/xor_overlayfs;"
             fi
+            overlayfs="required"
             setup="yes"
         fi
     fi
     if [ -n "$overlayfs" ]; then
         modprobe overlay
         if [ $? != 0 ]; then
+            if [ "$overlayfs" = required ]; then
+                die "OverlayFS is required but not available."
+                exit 1
+            fi
+            [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
             m='OverlayFS is not available; using temporary Device-mapper overlay.'
-            unset -v overlayfs setup reloadsysrootmountunit
+            info $m
+            unset -v overlayfs setup
         fi
     fi
 
@@ -302,10 +308,10 @@ if [ -e "$SQUASHED" ]; then
         fi
     elif [ -d /run/initramfs/squashfs/proc ]; then
         FSIMG=$SQUASHED
-        if [ -z "$overlayfs" ]; then
-            overlayfs="yes"
-            [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
+        if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ]; then
+            reloadsysrootmountunit=":>/xor_overlayfs;"
         fi
+        overlayfs="required"
     else
         die "Failed to find a root filesystem in $SQUASHED."
         exit 1