بررسي نرم افزارهاي Test Disk , Stellar Phoenix
براي کاربران لينوکس که عادت دارند چند لينوکس روي يک دستگاه داشته باشند و مخصوصاً سيستم عامل عمو بيل ( ويندوز ) را نيزدر کنار آن نصب کنند ، پريدن پارتيشن ها و از دست دادن اطلاعات ، مسئله ي تازه اي نيست و مي توان گفت که اين شتر يکبار تا به حال در خانه شان خوابيده و اگر هم هنوز نخوابيده ، بالاخره مي خوابد ! در اين مقاله ضمن ارائه مقدمه اي مناسب ، برگرداندن فايل ها و پارتيشن هاي پاک شده در لينوکس را خواهيد آموخت . ضمناً لازم به اشاره است که با توجه به پيچيدگي نسبي مباحث مرتبط با لينوکس ، جهت درک بهتر موضوع ، اين مقاله به زباني ساده نگارش گرديده و ارائه مي گردد .
مقدمه :
بايد اعتراف کنم که تا به حال دوبار مرتکب اشتباه Format کردن شدم ، و هر دو مرتبه هم به دليل نصب سيستم عامل عمو بيل اين فاجعه اتفاق افتاده است. مرتبه اول ، هارد ديسک 120 گيگابايتي را اشتباهاً به جاي يک پارتيشن 10 گيگابايتي به طور کلي Format کردم و مرتبه ي دوم نيز اشتباهاً با دستور زير ، تمام MBR را پاک نمودم :
=dd if = / dev/zero of = / dev/hda bs = 512 count=1
البته ساختار دستور فوق در انتهاي مقاله معرفي شده است . بنابراين دو حالت کلي به منظور بازگرداندن اطلاعات وجود دارد : اول آنکه تمام فايل هايتان را به طور دستي پاک يا فرمت کنيد و ديگر اينکه ، Partition Table به کل پاک شده و يا قسمتي از آن صدمه ببيند . بايد بدانيد که از علايم صدمه ديدن Partition Table آن است که پارتيشني قبلا وجود داشته ولي به طور ناگهاني در سيستم شناخته و مشاهده نشود . خوشبختانه در هر دو حالت فوق توسط نرم افزارهايي که در ادامه معرفي خواهد شد ، امکان بازيابي اطلاعات وجود دارد .
معرفي برنامه ي Stellar Phoenix Linux
با استفاده از اين برنامه تحت ويندوز مي توان فايل هاي پاک شده پارتيشن هاي لينوکسي را بازگرداند . همان طور که مي دانيد ، در مرتبه ي اول که 120 GB هاردم را به جاي 10 گيگابايت ، Format کرده بودم ، متاسفانه تمام اطلاعاتم ( از جمله کتاب ها و برنامه ها ) در پارتيشن هاي لينوکسي با فرمت ext3 قرار داشت و تمام برنامه هاي Recovery ( بازيابي اطلاعات ) موجود در بازار ، صرفاً به بازگرداندن پارتيشن هاي FAT و NTFS افتخار مي کردند و هيچ اثري از نام ext3 در ميان آنها نبود . خوشبختانه با تلاش و مجاهدت خستگي ناپذير ، به برنامه اي با نام Stellar Phoenix For Linux رسيدم . اما با تمام اين احوال ، اين برنامه تحت ويندوز بود . بنابراين به ناچار ، همان 120 GB فرمت شده را مجدداً پارتيشن بندي و ويندوز نصب کردم تا برنامه مذکور که رايگان هم نبود را اجرا کنم . برنامه مورد نظر بي نقص اجرا شد و بعد از يک scan تقريباً سريع ( کمتر از 5 دقيقه ) ، تمام پارتيشن هاي گم شده لينوکسي سيستم را نشان داده و امکان Browes و مديريت محتواي هر پارتيشن و تمام فايل ها را به من داد . پس از انتخاب تمام فايل هاي مورد نظر ، کليد Start Recovery را فشار داده و تمام اطلاعاتم را برگرداندم . لازم به ذکر است که اين برنامه حتماً پس از رجيستر شدن اقدام به بازگرداندن اطلاعات خواهد کرد . همچنين با توجه به سهولت استفاده از آن ، تنها به آدرس دانلود اين نرم افزار قناعت مي کنم :
http://www.stellarinfo.com/linux-data-recovery.htm
در ادامه پيشنهاد مي شود که Review ها را در لينک فوق مطالعه کنيد که تجربيات گران بهايي در آن نهفته است . همچنين فراموش نشود که تا به امروز هنوز برنامه اي براي برگرداندن داده هاي پارتيشن Reiser FS توليد نشده ، بنابراين اگر قابليت هاي اين فايل سيستم چندان ضرورتي برايتان ندارد ، از ext2 يا ext3 استفاده نماييد تا در مواقع بحران به مشکل برخورد نکنيد .
برگرداندن پارتيشن پاک شده توسط Test Disk
تست ديسک برنامه اي بسيار قوي براي بازيابي پارتيشن ها و همچنين Bootable کردن ديسک هايي است که ديگر بوت نمي شوند .
همچنين اين برنامه قابليت اجرا در سيستم عامل هاي Dos ، ويندوز 32 بيتي (xp,2000,NT4) ، لينوکس هاي مختلف FreeBSD,NetBSD,SunOS,MacOS را نيز دارد . علاوه بر آن ، اين برنامه عمل بازيابي را بسيار راحت تر انجام داده و با توجه به تبعيت از پروانه GNU/GPL ، کاملاً باز بوده و نيازي به نصب ندارد . لازم به اشاره است که پارتيشن هاي اشاره شده در ليست زير ، توسط اين برنامه قابل بازيابي هستند:
BeFS(BeOS( BSD disklabel (FreeBSD/OpenBSD/NetBSD( CramFS,Compressed File System DOS/Windows FAT12,FAT16and FAT32 HFS and HFS+,Hierarchical File System JFS,iBMُS,Journaled File System Linux Ext2 and Ext3 Linux Raid RAID1:Mirroring RAID4:striped array with parity device RAID5:Striped array whit distributed parity information RAID6:SStriped array whit distributed dual redundancy Linux Swap (versions 1 and 2( LVM and LVM2,Linux Logical Volume Manager mac parti tion Map Netware NSS NTFS)Windows NT/2K/XP/2003 ReiserFS3.5and 3.6 Sun Solaris i386 disklabel UFS and UFS2)Sun /BSD/...( XFS،SGIُS.journaled File System |
اين برنامه و مستندات کاملش را که در نوع ارائه شده ، مي توانيد در آدرس زير بيابيد :
http://www.cgsecurity.org
يک نوع از آن به نام Linux static که بايد روي ديسکت مورد استفاده قرار گيرد که معمولاً اين ديسکت Bootableنيست ، البته در اين رابطه جاي نگراني وجود ندارد ، زيرا درسايت Test DISK، آدرس دانلود يک ديسکت کوچک را نيز در اختيارتان قرار داده تا ابتدا سيستم را بوت کرده و سپس با Test DISK کار کنيد . ضمناً نسخه ديگر اين برنامه ، قابليت نصب بر روي سيستم را دارد . جالب آنکه در سايت مربوطه به حضور اين برنامه در توزيع هاي مختلفي مثل Knoppix,Gentoo و غيره ... ( به صورت پيش فرض ) اشاره شده است . در ادامه بدانيد که در صورت تمايل به استفاده از Linux static بايد برنامه دانلود شده را روي ديسکت کپي کنيد . اما اگر قصد نصب آن را داريد ، دو نسخه از اين برنامه به صورت RPM ( مشابه فايل Setup در ويندوز ) و همچنين کامپايلي در اختيارتان قرار دارد .
در صورت عدم مشاهده خطا به هنگام نصب برنامه ، دستور testdisk را با کاربر root اجرا کنيد . نکته قابل توجه اينکه ممکن است با وجود کامپايل و اجراي دستور ،install make برنامه در PATH نصب نشده و با دستورtestdisk اجرا نشود . در اين شرايط تنها با يک locate ساده مي توانيد آن را پيدا کنيد . به عنوان مثال در توزيع Fedora core ، برنامه در مسير usr/sbin قرار خواهد گرفت . حال پس از اجرا ، با متن زير روبرو خواهيد شد :
همان طور که ملاحظه مي کنيد ، هاردديسک هاي سيستم بر روي صفحه نمايش نمايان شده و در اين مرحله مي بايست هاردديسک مورد نظر خود را تعيين و گزينه ي proceed را انتخاب نماييد . سپس در صفحه ي دوم ، نوع partition را مطابق با نوع سيستم برگزينيد که البته معمولاً همان گزينه اول (intel/PC partition) مورد استفاده قرار مي گيرد .
حال در صفحه ي بعد ، گزينه ي Analyse را انتخاب کنيد . البته دقت داشته باشيد که درصورت وجود geometry مختلف براي هارد ديسک ، بايد از عدد صحيح استفاده کنيد که در ادامه مقاله در مورد اين موضوع توضيحات لازم ارائه خواهد شد .
پس از انجام مراحل فوق ، مي بايست منتظر اتمام آناليز برنامه بمانيد . در پايان نيز احتمال هشدار برنامه مبني بر تغيير geometry وجود دارد ( به عنوان مثال برنامه مقدار آن را 255 حدس مي زند ) که در اين صورت با فشردن دکمه Escape ، به منوي قبلي برگشته و وارد بخش geometry شويد . سپس گزينه ي Heads را انتخاب کرده و عدد صحيح را وارد نمائيد . اکنون مجدداً به منوي اصلي بازگشته و Analyse را انتخاب نماييد . در اين شرايط ، بر خلاف مرتبه اول ، اين عمليات چندان طول نخواهد کشيد و ظرف چند ثانيه همه پارتيشن ها را پيدا مي کند . توجه داشته باشيد که در صورت انتخاب عددي اشتباه براي Heads ، يک جدول از تمام پارتيشن ها در مقابل رويتان ظاهر مي شود که در کنار همه آنها کاراکتر D ( يا همان Deleted ) قرار داشته و به راحتي نوع پارتيشن را اعم از Primary يا Extended متوجه نخواهيد شد . بنابراين در صورت اشتباه بودن عدد مورد نظر به وب سايت نرم افزار مراجعه کرده و اطلاعات مکفي در مورد آن کسب نماييد .
اکنون پس از وارد کردن عدد صحيح و مراجعه به قسمت Analyse ، نرم افزار به سرعت Partition Table درست را براي شما پيدا کرده و رنگ سبز نمايش مي دهد .
در صورت مشاهده پارتيشن سفيد به همراه کاراکتر D در کنار آن ، اگر از صحت عدد Heads اطمينان داريد ، واقعاً برايتان متاسفم ! چون گمان مي کنم راه حلي براي آن وجود نداشته باشد . اکنون پس از مشاهده پارتيشن ها ، به راحتي روي يکي از آنها رفته و با فشردن دکمه P وارد آن شده و داده هاي عزيزتان را مشاهده کنيد . ناگفته نماند که براي مشاهده محتويات برخي از پارتيشن ها مانند NTFS با مشکل احتمالي مواجه مي شويد که چندان اهميتي ندارد ، زيرا سبز بودن رنگ پارتيشن نشان از توان برنامه براي بازگرداندن اطلاعات درون آن را داشته و لزومي به مشاهده درون آن ندارد .
در خاتمه با تعيين پارتيشن مورد نظر و فشردن دکمه Enter ، گزينه write را از پايين صفحه انتخاب نماييد .
سخن پاياني :
درپايان ضمن آرزوي موفقيت عمليات بازيابي اطلاعات در اين سيستم عامل ، توصيه مي کنم که هميشه با دستور زير ، يک Image به عنوان Backup
Partition Table سيستم تهيه نماييد تا در چنين مواقعي به کار آيد :
#dd if =/dev/hda of=HDA 1 ST TRACK.BIN bs=512 count=63 |
در صورت عدم آشنايي با دستور DD ، شديداً توصيه مي کنم که با استفاده از دستور man dd ( دستور man همانند Help عمل مي کند ) عملکرد جادويي آن را مشاهده کنيد . در پارامتر اول (if) آدرس source ( مبدا) را تايپ کرده و در پارامتر دوم (of) آدرس target ( مقصد ) را وارد نماييد . به عنوان مثال در صورت تمايل به ساختن يک فايل iso از محتويات dvd مي توان از دستور زير استفاده نمود :
/1024dd if=/dev/dvdromof=/home/bijan/myimage,iso bs=# |
در ضمن گزينه ي bs ، تنها اندازه chunk را مشخص مي کند .بنابراين در صورت تمايل به پاک کردن MBR هاردديسک ، تنها مي بايست dev/zero را که به مفهوم صفر کننده است ، روي 512 بايت اول هاردديسک کپي کنيد . نکته آخر و مهم در رابطه با بازيابي اطلاعات اينکه ، پس از پاک شدن يک فايل با بروز مشکل براي پارتيشن ، از کپي يا حذف فايل هاي موجود شديداً حذر کنيد . زيرا با کپي يک فايل 1 مگابايتي ، امکان عدم توانايي در بازيابي يک فايل 1 گيگابايتي وجود دارد .
منبع: ماهنامه دانش و کامپيوتر شماره84/خ