--- /usr/bin/mount.crypt 2006-01-14 19:44:33.000000000 +0100 +++ /usr/bin/mount.cryrk 2006-06-04 21:08:53.000000000 +0200 @@ -26,6 +26,8 @@ export PATH="/bin:/sbin:/usr/bin:/usr/sbin"; export IFS=`echo -en " \t\n"`; +[ "x$(/bin/readlink /proc/$PPID/exe)" = x/bin/mount ] || exit 0 + # Commands LOSETUP=/sbin/losetup CRYPTSETUP=/sbin/cryptsetup @@ -54,6 +56,7 @@ } DEVICE=$(readlink -f "$1"); +ORG_DEVICE=$DEVICE MOUNT_POINT="$2"; shift 2; @@ -175,7 +178,7 @@ fi; # $MOUNT_POINT might not exist as mount can try to read it from /etc/fstab -"$MOUNT" ${FSTYPE:+-t "$FSTYPE"} ${MOUNTOPTIONS:+-o "$MOUNTOPTIONS"} \ +"$MOUNT" -n ${FSTYPE:+-t "$FSTYPE"} ${MOUNTOPTIONS:+-o "$MOUNTOPTIONS"} \ "/dev/mapper/$DMDEVICE" "$MOUNT_POINT"; if [ $? -ne 0 ]; then echo "${0##*/}: error mounting $DMDEVICE" >&2; @@ -187,3 +190,4 @@ [ "$LOOP" == true ] && "$LOSETUP" -d "$DEVICE"; exit 1; fi; +"$MOUNT" -f -i -t crypt ${MOUNTOPTIONS:+-o "$MOUNTOPTIONS"} "$ORG_DEVICE" "$MOUNT_POINT" --- /usr/bin/umount.crypt 2006-01-14 19:44:33.000000000 +0100 +++ /usr/bin/umount.cryrk 2006-06-04 21:08:59.000000000 +0200 @@ -27,6 +27,8 @@ export PATH="/bin:/sbin:/usr/bin:/usr/sbin"; export IFS=`echo -en " \t\n"`; +[ "x$(/bin/readlink /proc/$PPID/exe)" = x/bin/umount ] || exit 0 + LOSETUP=/sbin/losetup CRYPTSETUP=/sbin/cryptsetup MOUNT=/bin/mount @@ -50,7 +55,7 @@ DEVICEDIR="$1"; fi; DEVICEDIR="${DEVICEDIR%/}"; -DMDEVICE=` "$MOUNT" | grep " $DEVICEDIR " | awk '{ print $1 }' | sed 's/^\/dev\/mapper\///g'`; +DMDEVICE=` "$MOUNT" | grep " $DEVICEDIR " | awk '{ print $1 }' | sed 's/^\/dev\/mapper\///g;s:/:_:g'`; if [ -z "$DMDEVICE" ]; then echo "Could not map $DEVICEDIR to a DM device"; @@ -61,7 +66,7 @@ # REALDEVICE=` "$CRYPTSETUP" status "$DMDEVICE" | sed -n '/device/s/[ ]*device:[ ]*//p'`; -"$UMOUNT" "$1"; +"$UMOUNT" -i "$1" if [ $? -ne 0 ]; then echo "${0##*/}: error unmounting $1" >&2 exit 1