mounter (1155B)
1 #!/bin/sh 2 # $ mounter 3 # you will then be guided through 4 # works best with USB drives, not tested with other devices 5 6 set -e 7 8 sudo -v || exit 1 9 10 i=1 11 devices="" 12 echo "devices found" 13 14 while read -r dev; do 15 if sudo cryptsetup isLuks "/dev/$dev" 2>/dev/null; then 16 echo "[$i] /dev/$dev" 17 devices="$devices /dev/$dev" 18 i=$((i + 1)) 19 fi 20 done << EOF 21 $(lsblk -do NAME) 22 EOF 23 24 [ "$i" -eq 1 ] && exit 1 25 26 set -- $devices 27 28 if [ "$i" -eq 2 ]; then 29 chosen_index=1 30 else 31 printf "select a device to unlock [1-%d]: " $((i - 1)) 32 read chosen_index 33 fi 34 35 n=1 36 for dev in "$@"; do 37 if [ "$n" -eq "$chosen_index" ]; then 38 chosen="$dev" 39 break 40 fi 41 n=$((n + 1)) 42 done 43 44 [ -z "$chosen" ] && exit 1 45 46 default_name="usb$chosen_index" 47 printf "name to assign to unlocked device [%s]: " "$default_name" 48 read name 49 [ -z "$name" ] && name="$default_name" 50 51 echo "cryptsetup opening $chosen as $name" 52 sudo cryptsetup open "$chosen" "$name" || exit 1 53 54 mount_point="/mnt/$name" 55 sudo mkdir -p "$mount_point" 56 echo "mounting $name" 57 sudo mount "/dev/mapper/$name" "$mount_point" || exit 1 58 59 echo "$chosen mounted successfully at $mount_point"