سلام.
خب فکر کنم هر ماه چند تا تاپیک مرتبط با این قضیه داشته باشیم. خودم قبلاً دو سه باری سر پارتیشنبندی به طور کلی یکی از درایوهام پاک شده و به لطف تستدیسک برگشته. چند وقت پیش فایلی رو اتفاقی shift+delete کردم و بعد از جستوجو رسیدم به
اینجا. این اسکریپت کار رو راحتتر کرده و فکر میکنم هر کسی بعد از خوندن این مطلب بتونه به سادگی فایلهای از دست رفتهش رو برگردونه. امیدوارم کمکی باشه به دوستان داغدیده
TestDisk یک نرمافزار آزاد و قدرتمند برای بازیابی اطلاعات است. با استفاده از آن میتوانید فایلهایی که مثلاً توسط فرمان rm -rf یا شیفت دیلیت کردن پاک شدهاند یا کرش نرمافزاری آنها را از بین برده را از روی پارتیشنهای FAT , exFAT , NTFS , ext2 , ext3 , ext4 بازیابی کنید.
اسکریپت زیر را داخل یک فایل متنی کپی کرده و آن را با نام دلخواه و پسوند sh. ذخیره کنید.
#!/bin/bash
#######################################################################################################
#######################################################################################################
#######################################################################################################
###### #######
###### #######
###### This script will help you to recover the accidentally #######
###### deleted data from crashed linux file systems #######
###### Script created by (Srijan Kishore) #######
###### #######
###### #######
#######################################################################################################
#######################################################################################################
#######################################################################################################
# User Check
if [ "$USER" = 'root' ]
then
gdialog --title "User Check" --msgbox "User is root, you can execute the script successfully." 200 150
echo "User is root, you can execute the script successfully"
else
gdialog --title "User Check" --msgbox "User is not Root. Please run the script as root user." 200 150
echo "User is not Root. Please run the script as root user."
exit 1
fi
# Check your operating system
cat /etc/debian_version >> /dev/null
if [ "$?" = 0 ]
then
echo "You are using ubuntu/debian"
gdialog --title "Your Operating System" --msgbox "You are using ubuntu/debian"
else
gdialog --title "Your Operating System" --msgbox "You are not using debian/ubuntu.You can download the TestDisk from this link http://www.cgsecurity.org/wiki/TestDisk_Download"
echo "You are not using debian/ubuntu. You can download the TestDisk from this link http://www.cgsecurity.org/wiki/TestDisk_Download"
fi
# Installing Testdisk
testdisk /version >> /dev/null
if [ "$?" = 0 ]
then
echo "Testdisk already installed"
else
echo "Installing Testdisk"
apt-get update
apt-get upgrade
apt-get --force-yes -y install testdisk
gdialog --title "Success" --msgbox "Testdisk installed successfully" 100 50
fi
# Set backup directory
mkdir -p /root/result/lostfiles
#Run the recovery program
photorec /d /root/result/lostfiles
# Filters files
user=`ps aux | grep gnome-session | grep -v grep | head -1 | cut -d " " -f1`
mkdir "/home/$user/recovered_output"
mkdir "/home/$user/recovered_output/Debians"
mkdir "/home/$user/recovered_output/rpms"
mkdir "/home/$user/recovered_output/conf_files"
mkdir "/home/$user/recovered_output/exe"
mkdir "/home/$user/recovered_output/binaries"
mkdir "/home/$user/recovered_output/Docs"
mkdir "/home/$user/recovered_output/Pdfs"
mkdir "/home/$user/recovered_output/Mbox"
mkdir "/home/$user/recovered_output/Images"
mkdir "/home/$user/recovered_output/Videos"
mkdir "/home/$user/recovered_output/Sound"
mkdir "/home/$user/recovered_output/ISO"
mkdir "/home/$user/recovered_output/Excel"
mkdir "/home/$user/recovered_output/Presentation"
mkdir "/home/$user/recovered_output/Web_Files"
mkdir "/home/$user/recovered_output/Archives"
mkdir "/home/$user/recovered_output/Others"
#Sorting the Recovered data
find /root/result/ -name "*.doc" -type f -exec mv {} "/home/$user/recovered_output/Docs/" \;
find /root/result/ -name "*.docx" -type f -exec mv {} "/home/$user/recovered_output/Docs/" \;
find /root/result/ -name "*.odt" -type f -exec mv {} "/home/$user/recovered_output/Docs/" \;
find /root/result/ -name "*.pdf" -type f -exec mv {} "/home/$user/recovered_output/Pdfs/" \;
find /root/result/ -name "*.mbox" -type f -exec mv {} "/home/$user/recovered_output/Mbox/" \;
find /root/result/ -name "*.png" -type f -exec mv {} "/home/$user/recovered_output/Images/" \;
find /root/result/ -name "*.jpg" -type f -exec mv {} "/home/$user/recovered_output/Images/" \;
find /root/result/ -name "*.jpeg" -type f -exec mv {} "/home/$user/recovered_output/Images/" \;
find /root/result/ -name "*.gif" -type f -exec mv {} "/home/$user/recovered_output/Images/" \;
find /root/result/ -name "*.avi" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.mpeg" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.mp4" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.mkv" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.webm" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.wmv" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.flv" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \;
find /root/result/ -name "*.mp3" -type f -exec mv {} "/home/$user/recovered_output/Sound/" \;
find /root/result/ -name "*.wav" -type f -exec mv {} "/home/$user/recovered_output/Sound/" \;
find /root/result/ -name "*.deb" -type f -exec mv {} "/home/$user/recovered_output/Debians/" \;
find /root/result/ -name "*.bin" -type f -exec mv {} "/home/$user/recovered_output/binaries/" \;
find /root/result/ -name "*.exe" -type f -exec mv {} "/home/$user/recovered_output/exe/" \;
find /root/result/ -name "*.rpm" -type f -exec mv {} "/home/$user/recovered_output/rpms/" \;
find /root/result/ -name "*.conf" -type f -exec mv {} "/home/$user/recovered_output/conf_files" \;
find /root/result/ -name "*.iso" -type f -exec mv {} "/home/$user/recovered_output/ISO/" \;
find /root/result/ -name "*.xls" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \;
find /root/result/ -name "*.xlsx" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \;
find /root/result/ -name "*.csv" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \;
find /root/result/ -name "*.ods" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \;
find /root/result/ -name "*.ppt" -type f -exec mv {} "/home/$user/recovered_output/Presentation/" \;
find /root/result/ -name "*.pptx" -type f -exec mv {} "/home/$user/recovered_output/Presentation/" \;
find /root/result/ -name "*.odp" -type f -exec mv {} "/home/$user/recovered_output/Presentation/" \;
find /root/result/ -name "*.html" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \;
find /root/result/ -name "*.htm" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \;
find /root/result/ -name "*.jsp" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \;
find /root/result/ -name "*.xml" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \;
find /root/result/ -name "*.css" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \;
find /root/result/ -name "*.js" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \;
find /root/result/ -name "*.zip" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.tar" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.rar" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.gzip" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.tar.gz" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.7z" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.bz" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \;
find /root/result/ -name "*.bz2" -type f -exec mv {} "/home/$user/recovered_output/Archives" \;
find /root/result/ -name "*.*" -type f -exec mv {} "/home/$user/recovered_output/Others/" \;
chown -R $user "/home/$user/recovered_output"
zenity --display :0 --info --width=350 --height=100 --title "Recovery Successful" --text " Data has been recovered successfully in recovered_output folder in your home directory."
nautilus /home/$user/recovered_output &
exit 0
با فرض آنکه نام فایل را spript.sh انتخاب کرده باشید، با دستور زیر به آن مجوز اجرا دهید:
chmod +x script.sh
دسترسی ریشه بگیرید:
sudo -i
اسکریپت را اجرا کنید:
sh script.sh
تمامی هارددیسکها، فلشمموریها و ... متصل به سیستم لیست میشوند. دیوایس مورد نظر را انتخاب کنید.
پارتیشن مورد نظر را نیز!
نوع فایلسیستم آن پارتیشن را انتخاب کنید.
برای ادامه، اینتر کنید.
پس از اتمام عملیات، تعداد فایلهای ریکاور شده نمایش داده میشود.
از testdisk خارج شوید.
پیغام موفقیتآمیز بودن بازیابی نمایش داده میشود.
OK کنید. فایلهای ریکاور شده، درون فولدری به نام recovered_output واقع در دایرکتوری خانگیتان منتطر شما است.
به همین سادگی.
موفق باشید.