diff --git a/CHANGES.txt b/CHANGES.txt index 5cd9848..6b96822 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +v1.1.13 +- Changed the location of .rkey files for decrypting volumes from hard coded to a variable. +- Minor bug fix to avoid possible cryptvol already exists message. + v1.1.12 - Added support for encrypted volumes. - Added check if volume is already mounted. diff --git a/README.md b/README.md index 02e7985..fbc0913 100644 --- a/README.md +++ b/README.md @@ -127,3 +127,8 @@ There are 2 ways you can access you data:

DSM 6 Classic RAID single volume

         

+
+ +

DSM 7 Encrypted volume

+

         

+ diff --git a/images/image-encrypted-volume-2.png b/images/image-encrypted-volume-2.png new file mode 100644 index 0000000..059abef Binary files /dev/null and b/images/image-encrypted-volume-2.png differ diff --git a/syno_recover_data.sh b/syno_recover_data.sh index c7539e0..2b1c477 100644 --- a/syno_recover_data.sh +++ b/syno_recover_data.sh @@ -41,8 +41,10 @@ #mount_path="/media" mount_path="/home/ubuntu" +home_path="/home/ubuntu" # Location of .rkey files for decrypting volumes -scriptver="v1.1.12" + +scriptver="v1.1.13" script=Synology_Recover_Data repo="007revad/Synology_Recover_Data" @@ -273,7 +275,7 @@ fi get_rkeys(){ # [NASNAME]_volume1.rkey rkeys=( ) - for rkey in /home/ubuntu/*_volume"${device_path##*_}".rkey; do + for rkey in "${home_path}"/*_volume"${device_path##*_}".rkey; do #echo "$rkey" # debug if [[ -f "$rkey" ]]; then rkeys+=("$rkey") @@ -288,7 +290,7 @@ select_rkey(){ select recovery_key in "${rkeys[@]}"; do if [[ $recovery_key ]]; then if [[ -f $recovery_key ]]; then - echo "You selected $recovery_key" + echo -e "You selected $recovery_key" break else ding @@ -301,7 +303,7 @@ select_rkey(){ done elif [[ ${#rkeys[@]} -eq 1 ]]; then recovery_key=${rkeys[0]} - echo "Using recovery key: $recovery_key" + echo -e "Using recovery key: $recovery_key" else ding echo -e "Line ${LINENO}: ${Error}ERROR${Off} No recovery key found!" @@ -335,12 +337,18 @@ if [[ $maybe_encripted == "yes" ]]; then # Decrypt the encrypted volume cryptvol="cryptvol_${device_path##*_}" - #echo "cryptovol: $device_path" # debug + #echo "cryptvol: $device_path" # debug + + # Remove any existing /dev/mapper/cryptvol_${device_path##*_} + if [[ -e "/dev/mapper/$cryptvol" ]]; then + umount -f "/dev/mapper/$cryptvol" + dmsetup remove -f "/dev/mapper/$cryptvol" + fi # cryptsetup open --allow-discards /dev/vgX/volume_Y cryptvol_Y -S 1 -d ${base64_decode_output_path} cryptsetup open --allow-discards "$device_path" "$cryptvol" -S 1 -d "${base64_decode_output_path}" code="$?" - if [[ $code -gt "0" ]]; then exit 1; fi + #if [[ $code -gt "0" ]]; then exit 1; fi # Set device_path device_path="/dev/mapper/$cryptvol" @@ -354,7 +362,8 @@ fi echo -e "\nCreating mount point folder(s)" if [[ ! -d "${mount_path}/$mount_dir" ]]; then #mkdir -m777 "${mount_path}/$mount_dir" - mkdir -m444 "${mount_path}/$mount_dir" + #mkdir -m444 "${mount_path}/$mount_dir" + mkdir -m744 "${mount_path}/$mount_dir" # Allow user to unmount volume from UI chown ubuntu "${mount_path}/$mount_dir"