aboutsummaryrefslogtreecommitdiff
path: root/share/hydractl/mount-media
diff options
context:
space:
mode:
Diffstat (limited to 'share/hydractl/mount-media')
-rwxr-xr-xshare/hydractl/mount-media46
1 files changed, 46 insertions, 0 deletions
diff --git a/share/hydractl/mount-media b/share/hydractl/mount-media
new file mode 100755
index 0000000..0073292
--- /dev/null
+++ b/share/hydractl/mount-media
@@ -0,0 +1,46 @@
+#!/bin/bash
+#
+# mount-media
+#
+
+# Parameters
+MEDIA="$1"
+VOLUME="$2"
+BASENAME="`basename $0`"
+MOUNTPOINT="/media/$MEDIA"
+
+# Check media config
+if [ -z "$MEDIA" ]; then
+ echo "usage: $BASENAME <media> [volume]"
+ echo "example: $BASENAME mymedia sdb1"
+ exit 1
+fi
+
+# Check volume config
+if [ -z "$VOLUME" ]; then
+ VOLUME="sdb1"
+fi
+
+DISK="`echo ${VOLUME} | sed -e s/[0-9]\$//g`"
+
+# Set sudo config
+if [ "`whoami`" != 'root' ]; then
+ sudo="sudo"
+fi
+
+if [ "$BASENAME" == "mount-media" ]; then
+ echo "Checking drive health status..."
+ $sudo smartctl -H /dev/$DISK
+ echo "Disabling STANDBY on drive..."
+ $sudo sdparm --clear STANDBY -6 /dev/$DISK
+ echo "Initializing crypto layer..."
+ $sudo cryptsetup luksOpen /dev/$VOLUME $MEDIA && \
+ echo "Checking filesystem..."
+ $sudo fsck -v -y /dev/mapper/$MEDIA && \
+ echo "Mounting volume at $MOUNTPOINT..."
+ $sudo mkdir -p $MOUNTPOINT
+ $sudo mount /dev/mapper/$MEDIA $MOUNTPOINT
+elif [ "$BASENAME" == "umount-media" ]; then
+ $sudo umount $MOUNTPOINT && \
+ $sudo cryptsetup luksClose $MEDIA
+fi