--- /dev/null
+#!/bin/sh
+#Unmount a mounted MNTPT.
+# By Alan M Bruce (qole)
+#
+# GPL licensed; keep code free!
+
+if [ "`whoami`" != "root" ] ; then
+ echo "please run me as root!"
+ exit 9
+fi
+
+#Try to get the MNTPT location from the first parameter
+MNTPT=$1
+
+#Try to get the MNTPT location from the config file...
+if [ "x$MNTPT" = x ] ; then
+ #Pull in the config, if possible...
+ [ -f /home/user/.chroot ] && . /home/user/.chroot
+ MNTPT=$CHROOT
+ #Still not set? FAIL
+ if [ "x$MNTPT" != x ] ; then
+ echo "No mountpoint to unmount!" >/dev/stderr
+ exit 8
+ fi
+fi
+
+
+TEST1=`mount | grep " $MNTPT "`
+
+if [ "x$TEST1" != "x" ] ; then
+ echo "..Unmounting $MNTPT..." >/dev/stderr
+ umount -ld "$MNTPT"
+
+ TEST2=`mount | grep " $MNTPT "`
+
+ if [ "x$TEST2" != "x" ] ; then
+ echo "...$MNTPT didn't unmount!" >/dev/stderr
+ exit 8
+ fi
+else
+ echo "$MNTPT is not mounted; Check for trailing slashes." >/dev/stderr
+fi
+
+if [ ! "x`grep device-mapper /proc/misc`" = "x" ] ; then
+ LOOPDEV=`echo $TEST1 | cut -f1 -d' '`
+ while [ "x`echo $LOOPDEV | grep dm-`" != "x" ] ; do
+ LOOPNO=`echo $LOOPDEV | awk -F '-' '{print $NF}'`
+ echo "..Unmounting turbo loop ($LOOPNO)..." >/dev/stderr
+ dmlosetup -d /dev/loop$LOOPNO
+ if [ "$?" != 0 ] || [ "x`dmsetup status | grep loop$LOOPNO`" != "x" ] ; then
+ echo "Waiting for apps to terminate, will try again." >/dev/stderr
+ sleep 5
+ dmlosetup -d /dev/loop$LOOPNO
+ if [ "$?" != 0 ] ; then
+ echo "Can't unmount turbo-loop! Try dmlosetup -d /dev/loop$LOOPNO manually." >/dev/stderr
+ exit 9
+ fi
+ fi
+ LOOPDEV=`mount | grep " $MNTPT " | cut -f1 -d' '`
+ done
+fi
+
+echo "successful unmount..." >/dev/stderr
+exit 0