ایده اصلی در بازیابی اطلاعات هاد دیسک اینه که خونه های حافظه هارد "خاطره" ای از چیزی که ذخیره کردن رو نگه میدارن… درست مثل میخی که نزدیک آهنربا بوده! بنابراین در بازیابی سخت افزاری میان خود صفحات دیسک رو از هارد خارج می کنن و با یک هد با دقت بالا می خونن و بعد میدان معناطیسی هر خونه حافظه رو بررسی می کنن و به جای اینکه از حدی به بالا یا پایین رو به عنوان صفر و یک بخونن (که میشه مقدار فعلی اون خونه) کمترین اختلاف ها رو هم در نظر میگیرن و بعد با مقایسه اونا میشه فهمید که قبلا در اون خونه چه مقداری نگهداری میشده.
برای همین هم اگر چندین بار و با الگوریتم های تصادفی مختلف روی یک دیسک نوشته بشه، شانس بازیابی کمتر میشه؛ چون اثر اون چیزی که در ابتدا نوشته شده بوده و پاک شده تقریبا از بین میره و چیزی هم که باقی مونده به خاطر تصادفی بودن نوشته های جدید قابل شناسایی نیست (به همین خاطره که نمیایم همه خونه ها رو چندین بار با فقط یک یا فقط صفر پر کنیم)
در روش نرم افزاری هم در سطح ابتدایی فقط به نقشه اطلاعات مراجعه شده و فایل هایی که به عنوان پاک شده علامت گذاری شدن (در این حالت هیچ داده ای پاک نشده و فقط در نقشه داده های هارد اون قسمت به عنوان خالی و قابل استفاده علامتگذاری شده) مشخص و بعد به جایی دیگه کپی و یا خیلی ساده دوباره به عنوان فایل عادی علامت گذاری می کنن. در سطح بالاتر که اطلاعات هنوز روی هارد وجود داره ولی از نقشه ادرس دهی حذف شده، میان تک تک خونه ها رو به دنبال داده با معنی (مثلا پروتوکل های فرمت های خاص فایل) می گردن و از روی اونا متوجه وجود فایل شده با الگوریتم های خطایابی، اطراف رو برای بقیه فایل میگردن و چیز های مربوط رو پیدا و کنار هم می چینن. در بالاترین سطح هم همین کار رو با دقت بیشتر روی میدان خونه های حافظه (مشابه اون چیزی که برای روش سخت افزاری گفتم) انجام میدن ولی در اینجا محدودیت دقت هد هارد استاندارد وجود داره و برای دقت بیشتر یا مواقعی که هارد آسیب فیزیکی دیده، باید از هد و سخت افزار الکترونیکی درایور تخصصی استفاده کرد.
………
واضحه که همه اینها در مورد حافظه های مغناطیسی صادقه و در مورد حافظه های فلش (از جمله SSD) چون ذخیره اطلاعات بورت مغناطیسی نیست و تماما الکترونیکه)، اثری مشابه حافظه مغناطیسی باقی نمیمونه و اگر اطلاعات روی دیسک واقعا تغییر کنن دیگه راهی برای بازیابی وجود نداره.