Advertisement
Guest User

dm-setup-helper

a guest
Sep 7th, 2014
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.72 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function alert() {
  4.         test -n "$DISPLAY" -a -x /usr/X11/bin/kaptain && {
  5.                 echo "$1" | /usr/X11/bin/kaptain /root/bin/kde-alert
  6.         } || {
  7.                 echo "$1"
  8.         }
  9. }
  10.  
  11. test -z "$1" && {
  12.         alert "Use: $0 DEVICE [MOUNT_POINT]"
  13.         exit 1
  14. }
  15.  
  16. modprobe dm-mod || {
  17.         alert "Can't load dm-mod kernel module"
  18.         exit 1
  19. }
  20.  
  21. test -b "$1" && {
  22.         dev="$1"
  23. } || {
  24.         test -b "/dev/$1" && {
  25.                 dev="/dev/$1"
  26.         } || {
  27.                 alert "Device must set"
  28.                 exit 1
  29.         }
  30. }
  31.  
  32. test -d "$2" || {
  33.         alert "$2 not directory, but crypt device create"
  34.         # exit 1
  35. }
  36.  
  37. function this_hash64() {
  38.         test -n "$1" && {
  39.                 data="$1"
  40.                 true
  41.         } || {
  42.                 test -n "$DISPLAY" -a -x /usr/X11R6/bin/kaptain && {
  43.                         data=`/usr/X11R6/bin/kaptain /root/bin/kde-pwd-ask`
  44.                         true
  45.                 } || {
  46.                         data=`cat`
  47.                         true
  48.                 }
  49.         }
  50.  
  51.         p1=`echo $data | sha1sum | cut -b 1-34`
  52.         p2=`echo $data | md5sum | cut -b 1-30`
  53.  
  54.         echo -ne $p1$p2
  55. }
  56.  
  57. scrt="crypt-"`echo $dev | awk 'BEGIN{FS="/"} END{print $NF}'`
  58. dmsetup ls | grep "$scrt" && {
  59.         alert "$scrt exist"
  60.         # exit 1
  61. } || {
  62.         pswd=`this_hash64`
  63.         blks=`blockdev --getsize $dev`
  64.  
  65.         # echo $blks `cat /sys/block/$(basename $dev)/size`
  66.  
  67.         echo "0 $blks crypt aes $pswd 0 $dev 0" | dmsetup create "$scrt"
  68.         blkid dev "$scrt"
  69. }
  70.  
  71. # `blkid -s LABEL "$scrt" | sed 's/.*: \(LABEL=".*\)"/\1/'`
  72. test -n "$2" && {
  73.         mount "/dev/mapper/$scrt" "$2"
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement