summaryrefslogtreecommitdiff
path: root/packages/openslug-init/openslug-init-0.10/initscripts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/openslug-init/openslug-init-0.10/initscripts')
-rw-r--r--packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh17
1 files changed, 15 insertions, 2 deletions
diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh b/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh
index b7ae8b76e5..da39b425f8 100644
--- a/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh
+++ b/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh
@@ -1,5 +1,18 @@
#!/bin/sh
#
# umount /mnt, which is where the initrd ends up mounted
-# if the directory /initrd is not present
-exec umount /mnt 2>/dev/null
+# if the directory /initrd is not present, if this fails
+# then the /initrd is mounted and we want to remount that
+# ro - this works round the shutdown -r hang problem
+umount /mnt 2>/dev/null || {
+ # need the device for a remount
+ . /etc/default/functions
+ ffspart=Flashdisk
+ ffsdev="$(mtblockdev $ffspart)"
+ if test -n "$ffsdev" -a -b "$ffsdev"
+ then
+ mount -o remount,ro "$ffsdev" /initrd
+ else
+ echo "Flashdisk: $ffsdev: flash device not found" >&2
+ fi
+}