كيف تعمل برامج إستعادة البيانات من القرص الصلب؟


التعليقات

الفكرة ببساطة انه لا يوجد شيئ يسمى حذف, انما السماح بامكانية الكتابة عليه (Overwrite), فعندما تقوم بحدف ملفات فالبيانات الخاصة بها تبقى موجودة, لكنك تسمح للقرص الصلب ان يستخدم هذه المساحات لوضع بيانات اخرى مكانها وقتما يشاء (وبالكتابة عليها تذهب القديمة الى الابد ولا يمكن ارجاعها).

تحتفظ أنظمة الملفات بجداول تحوي معلومات عن الملف: اسمه، مكان تخزينه على القرص، حجمه... إلخ

عند حذف الملف من نظام الملفات تُحذف المعلومات المخزنة عنه من الجدول المذكور أعلاه، فيرى نظام الملفات أن هذه المساحة فارغة (وهو ما يظهر لك).

لكي لا تُمكن إعادة ملف محذوف توجد طرق عدة أهمها الكتابة فوق المكان المخصص له (ملء المكان بأصفار مثلا). توجد برامج لهذا الغرض. على لينكس يوجد أمر shred لتأدية المهمة.

ينطبق على حذف ملف معمّى (مشفَّر) ما ينطبق على أي ملف آخر. بمعنى، عند حذف ملف معمَّى بالطريقة العادية (دون استخدام برامج خاصة) ثم إعادته ببرنامج إرجاع (استعادة) فإنّه يعود بوضعه المعمَّى.

ينبغي الانتباه إلى أنه توجد نُظُم ملفات File system كثيرة، تتفاوت في دعمها للتعمية، نفس الشيء بالنسبة للبرامج. إن نظرت في توثيق أمر shred المشار إليه سابقا فستجد أنه يحوي تحذيرا بخصوص نظام الملفات إذ يفترض الأمر أن نظام الملفات يحذف النسخة الأصلية ويعيد الكتابة فوقها (Overwrite).

بالنسبة لأنظمة الملفات التي تدعم التعمية فتعمية الملفات تحدث على مراحل:

  • إنشاء نسخة معمّاة من الملف.

  • حذف النسخة الأصلية.

  • الكتابة فوق النسخة الأصلية.

نعم نظم الملفات هي تلك التي أشرتَ إليها.

بخصوص إعادة الكتابة فهناك إمكانيات عدة، ويجب ألا يوجد بينها انتظار تخزين ملف جديد :). تمكن كتابة أصفار أو بيانات عشوائية. في العادة تحصُل دورات كتابة: تُولَّد بيانات عشوائية وتكتب (دورة أولى)، تولد بيانات عشوائية جديدة وتكتب في نفس المكان (دورة ثانية) وهكذا.

أهلا بك :)

بسم الله الرحمن الرحيم

كما ذكرت تماما , واسم هذا الجدول جدول الملفات الرئيسي MFT (master file table) ولكن هذا الاسم لنظام الملفات NTFS الخاص بنظام ويندوز , وله اسماء اخرى في نظم الملفات المختلفه

بسم الله الرحمن الرحيم

كما ذكرت فعلا , فلا يتم المسح الفعلي الى بعد عمليه تسمى wipe وهي عملية وضع اصفار مكان الملفات الممسوحه , او بمعنى اصح مكان القطاعات Sectors الموجوده على القرص الصلب , وبالتالي فانه بدون عملية wipe فان البيانات يمكن استردادها الا في حاله واحده وهي ان تكون وضعة مكانها ملفات اخرى .

سأحاول الشرح أكثر تدقيق أخي:

في نظام الملفات Ext2 مثلا هناك جدول إسمه Inode Table يحتوي على ال Inodes. كل Inode هل عبارة عن معلومات كحجم الملف و إسمه... و الأهم مكان تواجده في القرص الصلب... عندما تحذف الملف فقط يتم الإشارة لل Node الخاصة بالملف كغير مستعملة... ليتم إستعمالها لاحقا... إن أردت إعادة هذا الملف كل مع عليك فعلة هو تغيير ال Inode إلى وضع مستعملة. Ext3 يحذف معلومات الملف التي تشير للملف قبل الإشارة لل Node كغير مستعلمة ما يجعل المهمة أصعب قليلا...

ما يحدث أنك عندما تخبر نظام التشغيل أن يمسح ملفا ما، فإنه يقوم بإضافة مكان الملف الممسوح في قائمة الأماكن الفارغة التي يستعملها لاحقا عندما يحتاج مساحة خالية لأي غرض. إذا كنت سعيد الحظ فإن المكان القديم سيظل في قائمة الأماكن الشاغرة إلى أن تفعل الاستعادة، فتقوم برامج الاستعادة بإرجاع هذا المكان من قائمة الأماكن الفارغة للأماكن المشغولة. طبعا هناك عمليات أخرى تتم مع هذه العملية مثل عملية استرجاع المعلومات لنظام إدارة الملفات وغيرها من العمليات، لكن هذا هو المفهوم الرئيسي.

الأمر يشبه إلى حد ما مفهوم variables assignment في لغات البرمجة.

بسم الله الرحمن الرحيم

احوال عمل مقال ولكنه مازال تحت الانشاء ربما يفيد في موضوع معرفة بعض الاشياء الخاصه بالقرص الصب والمخزنات بمختلف انواعها وهذا رابطه


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

24.6 ألف متابع