#!/bin/bash #first get su sudo ls > /dev/null #check if device is connected cat /proc/partitions | grep 488386584 > /dev/null if [ $? -ne 0 ] then echo "Device not connected!" exit 1 fi printf "checking device: " dev=$(cat /proc/partitions | grep 488386584 | awk '{print $4}') for i in $dev do if [ $(udevinfo --query=all --name=/dev/$i | grep "ID_SERIAL=" | awk -F= '{print $2}') = "WD_5000AAK_External_574341505734313138393536-0:0" ] then dev=$(echo /dev#first get su sudo ls > /dev/null #check if device is connected cat /proc/partitions | grep 488386584 > /dev/null if [ $? -ne 0 ] then echo "Device not connected!" exit 1 fi printf "checking device: " dev=$(cat /proc/partitions | grep 488386584 | awk '{print $4}') for i in $dev do if [ $(udevinfo --query=all --name=/dev/$i | grep "ID_SERIAL=" | awk -F= '{print $2}') = "WD_5000AAK_External_574341505734313138393536-0:0" ] then dev=$(echo /dev/$i) fi done partition=$(echo $(echo $dev)7) luksMapper="" mapName="externe" mount1="/media/usb-1" mount2="/media/usb-2" mount3="/media/usb-3" printf "found at $dev\n" printf "checking mappings: " #check for cryptmount for mapper in $(ls /dev/mapper/) do devFound="false" sudo cryptsetup status $mapper > /dev/null 2>&1 if [ $? -eq 0 -a $devFound=false ] then actDev=$(sudo cryptsetup status $mapper | grep device | awk '{print $2}') if [ "$actDev" = "$partition" ] then devFound="true" luksMapper=$mapper fi fi done #get all mounts to unmount mountDev="" if [ "$luksMapper" = "" ] then printf "no mapping found\n" else mountDev=$(echo $mountDev $(mount | grep /dev/mapper/$luksMapper | awk '{print $3}')) printf "found at /dev/mapper/$luksMapper\n" fi printf "checking mounts: " for mounts in $(mount | grep $dev | awk '{print $3}') do mountDev=$(echo $mountDev $mounts) done if [ "$mountDev" = "" ] then printf "nothing found\n" else printf "found at $mountDev\n" printf "unmounting: " for mounts in $mountDev do sudo umount $mounts echo > /dev/null done printf "done\n" fi if [ "$luksMapper" = "" ] then echo > /dev/null else printf "closing mapping: " sudo cryptsetup luksClose $luksMapper printf "done\n" fi printf "opening mapping at /dev/mapper/$mapName: \n" sudo cryptsetup luksOpen $partition $mapName > /dev/null 2>&1 if [ $? -ne 0 ] then printf "\n\n" echo "error while opening the mapping!" exit 2 else echo "mapping opened successfully" fi echo "checking for mount directories: " printf "checking $mount1: " if [ ! -d "$mount1" ] then printf "creating\n" sudo mkdir "$mount1" else printf "ok\n" fi printf "checking $mount2: " if [ ! -d "$mount2" ] then printf "creating\n" sudo mkdir "$mount2" else printf "ok\n" fi printf "checking $mount3: " if [ ! -d "$mount3" ] then printf "creating\n" sudo mkdir "$mount3" else printf "ok\n" fi echo "mounting devices: " sudo mount -t ntfs-3g -o rw,uid=1000,gid=1000 $(echo $dev)5 $mount1 sudo mount -t vfat -o rw,uid=1000,gid=1000 $(echo $dev)6 $mount2 sudo mount -t xfs /dev/mapper/$mapName $mount3 echo "device mountet successfully and can now be used" exit 0 /$i) fi done partition=$(echo $(echo $dev)7) luksMapper="" mapName="externe" mount1="/media/usb-1" mount2="/media/usb-2" mount3="/media/usb-3" printf "found at $dev\n" printf "checking mappings: " #check for cryptmount for mapper in $(ls /dev/mapper/) do devFound="false" sudo cryptsetup status $mapper > /dev/null 2>&1 if [ $? -eq 0 -a $devFound=false ] then actDev=$(sudo cryptsetup status $mapper | grep device | awk '{print $2}') if [ "$actDev" = "$partition" ] then devFound="true" luksMapper=$mapper fi fi done #get all mounts to unmount mountDev="" if [ "$luksMapper" = "" ] then printf "no mapping found\n" else mountDev=$(echo $mountDev $(mount | grep /dev/mapper/$luksMapper | awk '{print $3}')) printf "found at /dev/mapper/$luksMapper\n" fi printf "checking mounts: " for mounts in $(mount | grep $dev | awk '{print $3}') do mountDev=$(echo $mountDev $mounts) done if [ "$mountDev" = "" ] then printf "nothing found\n" else printf "found at $mountDev\n" printf "unmounting: " for mounts in $mountDev do sudo umount $mounts echo > /dev/null done printf "done\n" fi if [ "$luksMapper" = "" ] then echo > /dev/null else printf "closing mapping: " sudo cryptsetup luksClose $luksMapper printf "done\n" fi printf "opening mapping at /dev/mapper/$mapName: \n" sudo cryptsetup luksOpen $partition $mapName > /dev/null 2>&1 if [ $? -ne 0 ] then printf "\n\n" echo "error while opening the mapping!" exit 2 else echo "mapping opened successfully" fi echo "checking for mount directories: " printf "checking $mount1: " if [ ! -d "$mount1" ] then printf "creating\n" sudo mkdir "$mount1" else printf "ok\n" fi printf "checking $mount2: " if [ ! -d "$mount2" ] then printf "creating\n" sudo mkdir "$mount2" else printf "ok\n" fi printf "checking $mount3: " if [ ! -d "$mount3" ] then printf "creating\n" sudo mkdir "$mount3" else printf "ok\n" fi echo "mounting devices: " sudo mount -t ntfs-3g -o rw,uid=1000,gid=1000 $(echo $dev)5 $mount1 sudo mount -t vfat -o rw,uid=1000,gid=1000 $(echo $dev)6 $mount2 sudo mount -t xfs /dev/mapper/$mapName $mount3 echo "device mountet successfully and can now be used" exit 0