Статьи

Чому і як вилучені файли можуть бути відновлені

  1. зміст

Користуючись програмами для відновлення даних, що допомагають повернути вилучені файли за лічені секунди, чи замислювалися ви, як саме вони працюють, і чому це взагалі можливо? У цій статті ми розглянемо, що робить Windows при видаленні файлу, і що роблять ці програми, щоб скасувати видалення.

У цій статті ми розглянемо, що робить Windows при видаленні файлу, і що роблять ці програми, щоб скасувати видалення

зміст

  1. Як Windows видаляє файли
  2. Удосконалення інструментів відновлення
  3. Відновлення у вмісті
  4. Відновлення даних - це брехня: SSD-диски

Коли файл видаляється (або через провідник Windows, або з іншої програми, або самою операційною системою), Windows не поспішає негайно заповнити нулями чи іншим чином знищити вміст файлу. Якщо це і трапиться, то не так скоро. Спробуйте видалити великий файл, який вам більше не потрібен, наприклад фільм, який ви вже переглянули. Потім спробуйте видалити крихітний ярлик. Зверніть увагу, що час, необхідний для видалення будь-якого файлу, буде однаковим. А якби Windows знищував всі видалені файли, для того, щоб стерти великий фільм, треба було б багато часу. Іншими словами, очищення вмісту кожного файлу, що видаляється сильно сповільнило б роботу вашого комп'ютера. (Зверніть увагу, що накопичувачі SSD працюють інакше, більш докладно про це пізніше).

Отже, якщо система Windows не видаляє файл фізично, що ж відбувається при його видаленні? Фактично, система робить одну просту річ: маркування записи в файлової системі, яка вказує на те, що даний файл вилучений і його більше не існує. Він просто ніде не буде відображатися. Тобто вміст вашого файлу все ще залишається десь на вашому диску (якщо це не SSD), але системна запис вказує на те, що його більше не існує (FAT32) або ж він позначається як порожній (NTFS). Звичайно, це сильно спрощена схема, але на даний момент нам не потрібні зайві технічні деталі. Цього цілком достатньо, щоб тепер розібратися з принципами відновлення даних.

Раз файл все ще існує десь на диску, але деяка запис в файлової системі позначає його як «віддалений», хіба ми не можемо просто зняти позначку?

Такий був принцип роботи однієї з перших програм відновлення даних (тоді) Microsoft DOS. Інструмент мав назву «undelete», і робив він буквально наступне: сканував файлову систему, щоб знайти файли, помічені як «віддалені», і знімав відповідний прапорець. При цьому віддалені файли втрачали перший символ в своєму імені, тому після видалення ви отримували «~ ocument.txt» замість «document.txt».

Що не так з цим підходом? Виявляється, дуже і дуже багато. По-перше, файлова система в сучасних багатозадачних операційних системах дуже мінлива. Створюються нові тимчасові файли, файли журналу та реєстру постійно перезаписувати багатьма системними завданнями і фоновими додатками. В результаті вихідні записи файлової системи, що вказують на віддалений файл, швидко застарівають, деякі або всі записи починають використовуватися операційною системою для зберігання інформації про нові файлах.

Зверніть увагу, що на цьому етапі вихідний віддалений файл може як і раніше залишатися на диску, займаючи той же дисковий простір, яке і раніше належало йому, в той час як запис файлової системи, яка вказує на цей файл, може більше не існувати.

Саме тому зараз ми працюємо з другим поколінням програм для відновлення даних.

У наступному поколінні інструментів відновлення даних більше не використовуються дані, отримані з файлової системи. Звичайно, сучасні інструменти все ще переглядають файлову систему і досить успішно відновлюють вилучені файли, якщо інформація про них як і раніше доступна, але вони можуть використовувати і інші джерела для виявлення віддалених файлів. Так, відновлення у вмісті (контент-відновлення) працює абсолютно інакше!

Продукти відновлення даних нового покоління, такі як RS File Recovery або RS Partiton Recovery, проробляють величезну роботу, щоб відновити ваші дані. Вони будуть сканувати всю поверхню вашого диска в пошуках «слідів» віддалених даних. Що ж вони шукають?

По-перше, для перевірки вмісту диска програма сканує файлову систему. Навіть якщо інформація про віддалений файлі відсутній, сканування файлової системи дозволяє створити карту ділянок диска, що належать іншим (існуючим) файлів, і виключити їх з подальшого сканування. Це розумно, оскільки типовий для користувача жорсткий диск заповнений більш ніж наполовину, тому кілька секунд, витрачені на сканування файлової системи, можуть заощадити вам час або більше часу сканування реального диска.

Потім інструмент починає зчитувати вміст диска, скануючи сектора диска, що не позначені як зайняті іншими файлами, - один блок за іншим. Кожен блок інформації, що прочитується з диска, перевіряється на основі баз даних, що містять багато характерних підпису файлів, які можуть ідентифікувати виявлені дані як початок певного типу файлу. Наприклад, зображення JPEG завжди починаються з «JFIF», в той час як файли PDF мають «% PDF%» на самому початку. (Звичайно, це знову спрощення, так як в дійсності сигнатури бінарні).

Якщо знайдено певну відповідність, програма виконує вторинну перевірку, щоб визначити, чи є це просто випадковий збіг або підпис дійсно означає початок файлу. Ця вторинна перевірка, в основному, є перевіркою заголовка файлу в певному форматі. Якщо перевірка пройдена, програма для відновлення даних проаналізує заголовок, щоб визначити довжину файлу. Після обчислення довжини файлу інструмент зчитує необхідну кількість блоків з диска і зберігає їх в новий файл на іншому диску.

Звучить здорово, але ... знову проблема? Цей метод працює відмінно, якщо всі файли на вашому диску зберігаються в суміжних, цільних блоках. Але що, якщо вони розкидані по диску частинами або, іншими словами, фрагментовані? Якщо це так, відновлення у вмісті може потерпіти невдачу. Детальніше про відновлення фрагментованих файлів читайте в наступній статті: Відновлення фрагментованих файлів.

Пам'ятайте, ми говорили, що Windows видаляє файли, практично не обнуляючи їх вмісту? Ми збрехали. Вміст віддалених файлів, дійсно, залишиться недоторканим, але тільки на традиційних (магнітних) жорстких дисках і деяких типах твердотільних накопичувачів, таких як карти пам'яті і флеш-накопичувачі USB. Але як щодо надшвидких SSD-накопичувачів? Це зовсім інша історія ...

При видаленні файлу з SSD-диска Windows все одно не стирає його вміст, не дивлячись на те, що пристрій працює у багато разів швидше, ніж магнітні жорсткі диски. Протокол точно такий же, з однієї спеціальної неадресної зоною зарезервованих блоків даних (знову ж таки, з метою вирівнювання зносу).

Як доповнення: Windows відправить команду «TRIM» на диск, повідомивши контролера, що цей і той блоки даних більше не використовуються. З цього моменту SSD-накопичувач може робити все, що захоче, з цими блоками даних. Він може очистити їх, щоб збільшити швидкість запису, замінити їх іншими логічними блоками даних, щоб контролювати знос ( «вирівнювання зносу»), а може залишити їх вміст незмінним. Але навіть якщо вміст віддалених файлів буде залишатися десь на SSD-накопичувачі протягом деякого часу, контролер SSD завжди буде повертати «нулі», якщо ви спробуєте прочитати потрібний блок. З цим нічого неможливо зробити, незалежно від використовуваного рівня доступу. Навіть спеціалізоване обладнання для обробки зображень, що використовується в багатьох судово-медичних лабораторіях, не може відновити видалені командою «TRIM» дані.

Все втрачено? Не зовсім. Деякі SSD-накопичувачі не підтримують TRIM, і іноді навіть якщо вони це роблять, SSD може бути налаштований неправильно, щоб підтримувати її роботу. Якщо ваш SSD-диск відформатований за допомогою FAT32 (або exFAT) замість NTFS, Windows не зможе запустити TRIM. Також, якщо файлова система пошкоджена, будь-які віддалені дані не будуть втрачені. Таким чином, як і раніше стоїть спробувати запустити хорошу програму для відновлення даних на вашому SSD, наприклад RS Partition Recovery і перевірити, що ще можна зробити.

Отже, якщо система Windows не видаляє файл фізично, що ж відбувається при його видаленні?
Раз файл все ще існує десь на диску, але деяка запис в файлової системі позначає його як «віддалений», хіба ми не можемо просто зняти позначку?
Що не так з цим підходом?
Що ж вони шукають?
Знову проблема?
Але що, якщо вони розкидані по диску частинами або, іншими словами, фрагментовані?
Пам'ятайте, ми говорили, що Windows видаляє файли, практично не обнуляючи їх вмісту?
Але як щодо надшвидких SSD-накопичувачів?
Все втрачено?

Новости