#!/bin/bash # # mount-media # # Parameters MEDIA="$1" VOLUME="$2" BASENAME="`basename $0`" MAPPING="$MEDIA" MOUNTPOINT="/media/$MEDIA" # Check media config if [ -z "$MEDIA" ]; then echo "usage: $BASENAME [volume]" echo "example: $BASENAME mymedia sdb1" exit 1 fi # Set sudo config if [ "`whoami`" != 'root' ]; then sudo="sudo" fi # Check volume config if [ -z "$VOLUME" ]; then VOLUME="sdb1" fi # Disk and device config DISK="/dev/`echo ${VOLUME} | sed -e s/[0-9]\$//g`" DEVICE="/dev/$VOLUME" # Check if LVM if $sudo lvdisplay /dev/$MEDIA/root &> /dev/null; then LVM="yes" DEVICE="/dev/$MEDIA/root" MAPPING="$MAPPING-unlocked" fi if [ "$BASENAME" == "mount-media" ]; then if [ -e "$DEVICE" ]; then echo "Checking drive health status..." $sudo smartctl -H $DISK echo "Disabling STANDBY on drive..." $sudo sdparm --clear STANDBY -6 $DISK fi if [ "$LVM" == "yes" ]; then $sudo vgchange -a y $MEDIA fi echo "Initializing crypto layer..." $sudo cryptsetup luksOpen $DEVICE $MAPPING && \ echo "Checking filesystem..." $sudo fsck -v -y /dev/mapper/$MAPPING && \ echo "Mounting volume at $MOUNTPOINT..." $sudo mkdir -p $MOUNTPOINT $sudo mount /dev/mapper/$MAPPING $MOUNTPOINT elif [ "$BASENAME" == "umount-media" ]; then $sudo umount $MOUNTPOINT && \ $sudo cryptsetup luksClose $MAPPING if [ "$LVM" == "yes" ]; then $sudo vgchange -a n $MEDIA fi fi