Created
June 7, 2018 13:49
-
-
Save jettero/1cf8b5790be323322da173adf60f7181 to your computer and use it in GitHub Desktop.
my very secret files mount/umount kit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DIR="$(dirname "$(realpath "$0")")" | |
CREATE=no | |
while [ -z "$MAP" ]; do | |
if [ -n "$1" ] | |
then MAP="$1"; shift | |
else | |
echo current image files: | |
ls -1 *.img | xargs -rn1 -IX basename X .img | |
echo | |
read -ep "MAP=" MAP | |
fi | |
MAP="$(basename "$MAP" .img)" # make sure we don't end with .img | |
IMG="$DIR/$MAP.img" | |
if [ ! -f "$IMG" ]; then | |
read -ep "create $IMG? " -i y YN | |
if [[ "$YN" =~ [Yy] ]] | |
then CREATE=yes | |
fi | |
fi | |
done | |
DEV=$(losetup -f) # name of the first unused loopback device | |
if [ x$CREATE = xyes ]; then | |
# set up the initial file | |
(set -x; dd if=/dev/zero of=$IMG bs=1M count=10) | |
fi | |
(set -x; sudo losetup $DEV "$IMG") || exit 1 | |
if [ x$CREATE = xyes ]; then | |
# write random data to thing | |
(set -x; sudo badblocks -s -w -t random -v $DEV) || exit 1 | |
# format with aes | |
(set -x; sudo cryptsetup -y luksFormat -c aes -s 256 $DEV) || exit 1 | |
fi | |
(set -x; sudo cryptsetup luksOpen $DEV $MAP) || exit 1 | |
if [ x$CREATE = xyes ]; then | |
# make an ext4 filesystem | |
(set -x; sudo mkfs.ext4 /dev/mapper/$MAP) || exit 1 | |
fi | |
(set -x; sudo e2fsck -f /dev/mapper/$MAP) || exit 1 | |
(set -x; sudo mkdir -vp /mnt/$MAP) || exit 1 | |
(set -x; sudo mount /dev/mapper/$MAP /mnt/$MAP) || exit 1 | |
if [ x$CREATE = xyes ]; | |
then (set -x; sudo chown -cR $(id -u):$(id -g) /mnt/$MAP) | |
fi |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DIR="$(dirname "$(realpath "$0")")" | |
while [ -z "$MAP" ]; do | |
if [ -n "$1" ] | |
then MAP="$1"; shift | |
else | |
echo current image files: | |
ls -1 *.img | xargs -rn1 -IX basename X .img | |
echo | |
read -ep "MAP=" MAP | |
fi | |
MAP="$(basename "$MAP" .img)" # make sure we don't end with .img | |
IMG="$DIR/$MAP.img" | |
done | |
(set -x; sudo umount /mnt/$MAP) | |
(set -x; sudo cryptsetup luksClose $MAP) | |
#/dev/loop0: []: (/home/very/secret/images/other.img) | |
#/dev/loop1: []: (/home/very/secret/images/test.img (deleted)) | |
devs=( $(losetup -a | \grep -E "$IMG|\\(deleted\\)" | cut -d: -f1 | grep /dev/loop) ) | |
for DEV in "${devs[@]}" | |
do (set -x; sudo losetup -d "$DEV") | |
done | |
(set -x; sudo rmdir /mnt/$MAP) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment