СообЧа > База Знаний > Железо > Накопители > HDD

Вопрос

Слышал, что если файловая система ФАТ, то можно восстановить любые удаленные файлы с помощью специальных программ. Как это все происходит, т.е. не как работают программы, а как происходит восстановление и почему оно возможно?

Ответ

Диск разбит на кластеры. Кластеры нумеруются начиная с 2. Каждому кластеру соответствует ячейка в FAT (File Allocation Table). Файл занимает несколько кластеров. Номер первого кластера хранится в записи в директории (по большому счету это тоже файлы, только специального вида и формата).

Номер второго кластера файла хранится в ячейке FAT, соответствующей первому кластеру файла, номе третьего кластера хранится в ячейке FAT, соответствующей второму кластеру файла и т.д. В ячейке FAT, соответствующей последнему кластеру файла содержится число-признак конца файла (0, если не ошибаюсь). Реальный размер файла содержится в директории. Не занятые файлами кластеры помечаются в FAT нулем.

Когда файл удаляется, то обнуляются все ячейки в FAT, соответствующие кластерам, принадлежащим удаляемому файлу и в первый символ имени файла в директории заносится символ '?'. Больше ничего с информацией файла не произойдет, пока для некоторого другого файла не понадобится этот кластер.

Для восстановления файла осталось заменить этот '?' на некий символ (не обязательно оригинальный) и воссоздать цепочку кластеров. Эту операцию лучше проделывать вручную, просматривая каждый кластер и при необходимости нанизывая его на цепочку.

Это еще то удовольствие. Есть несколько способов облегчить эту задачу.

Если диск был дефрагментирован, то файлы занимают кластера по порядку. То есть между кластерами одного файла не затешется кластер от другого и цепочку восстановить элементарно просто.

Винды имеют такой инструмент, как Recycle Bin. При удалении файла он просто помещается туда и лежит, пока не будет выкинут оттуда другими удаленными файлами (размер корзины ограничен) или командой очистить. После этого и произойдет его реальное удаление. Из корзины файл может быть легко восстановлен, так как его еще не удалили.

Недостаток корзины Recycle Bin заключается в том, что она отслеживает далеко не все удаления файлов и случаи замены одного файла на такой же, но с другим содержимым (последовательные сохранения текста или игры). Norton Utilities и некоторые другие пакеты содержат средства, позволяют отслеживать подобные случаи. Это просто надстройки или замены стандартной корзины и работают по аналогичным принципам. Кстати, эти пакеты тоже далеко не идеальны.

Пакеты могут содержать и содержат утилиты, облегчающие восстановление файлов даже в случае удаления тем методом, как я описал в начале.

Если нужно удалить файл так, чтобы его вообще нельзя было восстановить, то нужно будет еще обнулить содержимое кластеров, содержавших файл. Но и в этом случае на специальном оборудовании можно будет его восстановить. Более капитальный способ — многократная запись в кластеры файла случайной информации. Или, даже, физическое уничтожение винча (расплавить или целиком сточить на точильном круге или чего-нибудь подобное). Но и при этом сохраняется вероятность, что файл был кем-то скопирован до того, как ты его уничтожил.

Можно уничтожить все файлы на диске, заполнив FAT нулями или случайной информацией. Из за относительной компактности таблицы FAT, это можно проделать быстро, чем и пользуются создатели вирусов и прочей дряни.

Valentin



Copyright © 2000-2004 Сообщество Чайников
Контактная информация