Skip to content

Instantly share code, notes, and snippets.

@kitingChris
Last active September 10, 2017 15:03
Show Gist options
  • Save kitingChris/6a63cfdc18b4cbe59a9907f41e048a53 to your computer and use it in GitHub Desktop.
Save kitingChris/6a63cfdc18b4cbe59a9907f41e048a53 to your computer and use it in GitHub Desktop.
LUKS Mount & Umount scripts
#!/bin/bash
# ------------------------------------------------------------------
# [Christian Ego] luksmount
# Mounts an encrypted LUKS container
# ------------------------------------------------------------------
HELP="\n
Usage:\n
\t$(basename $0) [FILE] [MOUNTPOINT] [FILESYSTEM]\n
\n
Arguments:\n
\tFILE:\t\tContainerfile to mount\n
\tMOUNTPOINT:\t[Optional] Mountpoint, Default: /mnt/CONTAINERNAME\n
\tFILESYSTEM:\t[Optional] Filesystem to mount, Default: ext4\n
"
if [ -z "$1" ]; then
echo -e $HELP
exit 1
fi
if [ "$(id -u)" -ne 0 ]; then
echo "$(basename $0) must run with root permissions"
exit 1
fi
CONTAINERFILE="$1"
CONTAINERNAME="$(basename $CONTAINERFILE)"
MOUNTPOINT="${2:-/media/$CONTAINERNAME}"
FILESYSTEM="${3:-ext4}"
LOOPDEV=$(/sbin/losetup -f)
if [ "$(/sbin/losetup -a | grep -c $CONTAINERFILE)" != "0" ]; then
echo "$CONTAINERFILE already mounted"
exit 1
fi
if mountpoint -q $MOUNTPOINT; then
echo "mountpoint $MOUNTPOINT already in use"
exit 1
fi
mkdir -p $MOUNTPOINT
/sbin/losetup $LOOPDEV $CONTAINERFILE
/sbin/cryptsetup luksOpen $LOOPDEV $CONTAINERNAME
/bin/mount -t $FILESYSTEM /dev/mapper/$CONTAINERNAME $MOUNTPOINT
#!/bin/bash
# ------------------------------------------------------------------
# [Christian Ego] luksumount
# Unmounts an encrypted LUKS container
# ------------------------------------------------------------------
HELP="\n
Usage:\n
\t$(basename $0) [FILE] [MOUNTPOINT]\n
\n
Arguments:\n
\tFILE:\t\tContainerfile to mount\n
\tMOUNTPOINT:\t[Optional] Mountpoint, Default: /mnt/CONTAINERNAME\n
"
if [ -z "$1" ]; then
echo -e $HELP
exit 1
fi
if [ "$(id -u)" -ne 0 ]; then
echo "$(basename $0) must run with root permissions"
exit 1
fi
CONTAINERFILE="$1"
CONTAINERNAME="$(basename $CONTAINERFILE)"
MOUNTPOINT="${2:-/media/$CONTAINERNAME}"
LOOPDEV=$(/sbin/losetup -a | grep "$SAFE" | sed "s/: .*//")
if [ "$(/sbin/losetup -a | grep -c $CONTAINERFILE)" != "1" ]; then
echo "$CONTAINERFILE not mounted"
exit 1
fi
if ! mountpoint -q $MOUNTPOINT; then
echo "nothing mounted on $MOUNTPOINT"
exit 1
fi
/bin/umount $MOUNTPOINT
/sbin/cryptsetup luksClose $CONTAINERNAME
/sbin/losetup -d $LOOPDEV
rmdir $MOUNTPOINT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment