خیلی زمانها پیش میاد که به صورت اتفاقی با تصادفی برای فایلها “shift + delete” را فشار میدهیم.با طبیعت انسانی شما هم عادت به استفاده از “shift + Del” بجای آپشن “Delete” دارید.حقیقتا همچین تصادفی چند روز پیش برای من اتفاق افتاد.من داشتم روی یک پروژهای کار میکردم و آن را در یک پوشهای ذخیره کرده بودم.خیلی از فایلهای داخل آن پوشه را دیگر نیاز نداشتم و میخواستم که آنها را برای همیشه پاک کنم.پس شروع به یکی یکی پاک کردن آنها کردم تا وقتی که به آن فایل رسیدم و اتفاقی روی یکی از فایلهای مهمم “shift delete” را فشار دادم.من شگفتزده بودم که چطور فایل پاک شده را بر گردانم و هیچ چیزی به ذهنم هم نمیرسید.خیلی زمان صرف بازگرداندن اون فایل کردم اما شانس نیاوردم.
داشتن یک مقدار دانش فنی دربارهی کارکرد فایل سیستم و هارد میتواند مفید باشد.وقتی شما به صورت اتفاقی یک فایلی را پاک میکنید محتویات فایل از روی کامپیوتر شما پاک نمیشود .اون فقط از پوشه دیتابیس حذف میشود که باعث میشود شما نتوانید آن را در پوشه ببینید ولی درواقع آن محتویات در یکجایی از هارد شما باقیمانده است.اصولا سیستم یک list pointer برای بلاک ها روی دیوایس ذخیره دارد که هنوز دیتا دارند.این دیتا از روی بلاک دیوایس ذخیره پاک نمیشود تا اینکه توسط یک فایل جدید دوباره نوشته شود.در این مورد فایل پاک شده من ممکن هنوز در یک ناحیه unindex شده هارد دسیک باقیمانده باشد.به هرحال پیشنهاد میشه که فوراً دیوایسی که فایل مهمی دران پاک شده را unmount کنید.unmount به شما کمک میکند که از نوشته شدن دوبارهی فایلهای بلاک شده جاوگیری کنید.
در این سناریو من نمیخوان که روی آن دیتا دوباره نوشته شود ،از حالا به بعد من ترجیح میدهم که بدون mount کردن داخل هارد درایو را جستجو کنم.
عموما در ویندوز ابزارهای ۳rd party زیادی برای برگرداندن اطلاعات ازدست رفته وجود دارند اما در لینوکس کم هستند.به هرحال من از ابونتو به عنوان سیستمعامل استفاده میکنم و پیدا کردن ابزاری برای ریکاوری خیلی دشوار بود.در طول تحقیق من در بارهی ابزار “Scalpel” اطلاعاتی بدست آوردم ،که روی هارد اجرا میشود و اطلاعات پاک شده را ریکاوری میکند.من نصب کردمش و با موفقیت فایل پاک شده خود را با استفاده از ابزار Scalpel ریکاوری کردم.واقعا یک ابزار فوقالعاده است.
این اتفاق ممکن است که برای شما هم بیافتد برای همین من تجربهی خودم را با شما به اشتراک میگذارم.در این مقاله من به شما نشان خواهم که چگونه فایل پاک شدهی خود را با استفاده از ابزار scalpel ریکاوری کنید.
ابزار(scalpel(A Filesystem Recovery Tool چیست:
scalpel یک ابزار متن باز ریکاوری فایل سیستم برای لینوکس و مک میباشد.این ابزار ، دیتابیس بلاک ذخیرهسازی را میبیند و فایلهای پاکشده را تشخیص میدهد و فوراً آن را ریکاور میکند.
نصب Scalpel بر روی لینوکس Debian/Ubuntu/Mint
برای نصب Scalpel ، ترمینال را با انجام Ctrl+Alt+T از دسکتاپ باز کنید واز دستور زیر پیروی کنید:
$ sudo apt-get install scalpel
خروجی :
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: scalpel 0 upgraded, 1 newly installed, 0 to remove and 390 not upgraded. Need to get 0 B/33.9 kB of archives. After this operation, 118 kB of additional disk space will be used. Selecting previously unselected package scalpel. (Reading database ... 151082 files and directories currently installed.) Unpacking scalpel (from .../scalpel_1.60-1build1_i386.deb) ... Processing triggers for man-db ... Setting up scalpel (1.60-1build1) ... tecmint@tecmint-Latitude-D630:~$
نصب scalpel بر روی RHEL/CentOS/Fedora
برای نصب scalpel recovery tool ،شما ابتدا باید epel repository را فعال کنید.بعد شما میتوانید با yum آن را مانند زیر نصب کنید :
# yum install scalpel
خروجی :
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.01link.hk * epel: mirror.nus.edu.sg * epel-source: mirror.nus.edu.sg Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package scalpel.i686 0:2.0-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================== Package Arch Version Repository Size ========================================================================================================================================================== Installing: scalpel i686 2.0-1.el6 epel 50 k Transaction Summary ========================================================================================================================================================== Install 1 Package(s) Total download size: 50 k Installed size: 108 k Is this ok [y/N]: y Downloading Packages: scalpel-2.0-1.el6.i686.rpm | 50 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : scalpel-2.0-1.el6.i686 1/1 Verifying : scalpel-2.0-1.el6.i686 1/1 Installed: scalpel.i686 0:2.0-1.el6 Complete!
بعد از اتمام نصب scalpel شما احتیاج به کمی ویرایش دارید.به طور پیشفرض تنظیمات scalpel در دایرکتوری “/etc” است که آدرس کامل آن “/etc/scalpel/scalpel.conf” یا “/etc/scalpel.conf” است.توجه داشته باشید که همهچی کامنت (#) شده هستند و شما قبل از اجرای scalpel باید فرمتی که نیاز به ریکاوری دارید را آنکامنت کنید.
به عنوان مثال من فقط میخواهم فایلهایی با فرمت “.jpg” را ریکاوری کنم بنابراین در تنظیمات scalpel قسمت “.jpg” را آنکامنت میکنم .
# GIF and JPG files (very common) gif y 5000000 \x47\x49\x46\x38\x37\x61 \x00\x3b gif y 5000000 \x47\x49\x46\x38\x39\x61 \x00\x3b jpg y 200000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9
به ترمینال بروید وسینتکس زیر را اجرا کنید .“/dev/sda1″ موقعیت دیوایسی میباشد که فایل قبلاً درآن پاک شده است.
$ sudo scalpel /dev/sda1-o output
آپشن “-o” به دایرکتوری خروجی اشاره میکند.جایی که میخواهید فایلهای پاک شده را برگردانید.مطمئن شوید که این دایرکتوری خالی باشد وگرنه با error مواجه میشوید.
خروجی دستور بالا :
Scalpel version 1.60 Written by Golden G. Richard III, based on Foremost 0.69. Opening target "/dev/sda1" Image file pass 1/2. /dev/sda1: 6.1% |***** | 6.6 GB 39:16 ETA
همانطور که میبینید scalpel در حال انجام عمل ریکاوری است و این عمل زمانی را صرف میکند و این زمان به میزان فضایی که شما میخواهید اسکن کنید و سرعت ماشین شما بستگی دارد.
به شما پیشنهاد میکنم که بجای “Shift + Delete” به delete عادت کنید زیرا همیشه پیشگیری بهتر از درمان است.
cheers!