Einzelnen Beitrag anzeigen
Alt 28.02.08, 16:27   #9 (permalink)
lookshe
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

Also für meine externe Platte hab ich da mal ein nettes Script geschrieben. Da ich damit erstmal keine weiteren Probleme habe, hab ich es nicht weiter ausgebaut, sind noch einige Kleinigkeiten zu machen.

Bash-Skript   

Code:
#!/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
lookshe ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61