Содержимое файла (каталога) хранится на диске в блоках данных фиксированной длины, которые называют кластерами. Каждый кластер также, в свою очередь, содержит определенное фиксированное количество физических секторов на диске для каждого раздела. Количество секторов, которые содержатся в кластере, определяются записью в структурах файловой системы.
Очень интересно бывает в том случае, если файл или каталог содержит не один, а более одного кластера. Вот последующие кластеры и находятся при помощи структуры данных, которая называется FAT. Использование этой структуры преследует двойную цель: во-первых, для идентификации следующих кластеров в каталогах, во-вторых, для определения занятости этого конкретного кластера.
Перед началом анализа файловой системы FAT, необходимо корректно идентифицировать три важных области этой системы.
Во-первых, область – зарезервированная, т.е. она содержит данные из категории файловой системы. Зарезервированная область в версиях FAT12 и FAT16 занимает всего один сектор, однако размер этой области формально определяется в загрузочном секторе.
Во вторых, – область FAT. Эта область содержит основные и резервные структуры файловой системы. Размер этой области определяется размером структур FAT и количеством. Начало этой области – сектор, следующий за зарезервированной областью.
В заключении рассмотрим последнюю область – это область данных. Именно в этой области хранится содержимое всех каталогов.
Анализируя файловую систему, исполнитель, в первую очередь, будет интересоваться именно областью FAT, т.к. именно здесь хранятся все структуры, ставящие в соответствие файлы и каталоги по физическим адресам на диске, хранящем их содержимое.
В процессе анализа конкретной файловой системы очень важно корректно идентифицировать все три физические области. Исполнитель учитывает, что начало зарезервированной области всегда находится в нулевом секторе анализируемой файловой системы. В загрузочном секторе указывается размер этой области, а для систем FAT 12 и FAT 16 составляет ровно один сектор. Зарезервированная область в FAT32 может занимать также несколько секторов.
Местоположение области FAT таково, что следует область FAT сразу за зарезервированной областью и содержать может как одну, так и несколько структур FAT. Вычисляется размер этой области путем умножения количества структур FAT на размер каждой структуры. Хранятся эти значения в загрузочном секторе, т.е. в зарезервированной области.
Сейчас мы подошли к вопросу о восстановлении файлов. При удалении файла, запись, которая ему соответствует в файловой системе метится как удалённая, а кластеры, занятые им же получают статус свободных, т.е. не выделенных.
В процессе анализа исполнитель может получить информацию о размере и физическом адресе начала файла. Информация об остальных кластерах отсутствует. Это происходит потому, что при удалении файла, записи кластеров в FAT обнуляются.
В результате исполнитель не может просто восстановить всю цепочку кластеров, которая принадлежит удалённому файлу. Однако, он может сделать попытку восстановления содержимого. Для этого необходимо прочитать данные из известного начального кластера. В случае, если файл маленький и умещается в одном кластере – это идеальный вариант. Иначе исполнителю придется думать над вопросом выбора остальных кластеров файла. Это достаточно сложная процедура.
Методы определения принадлежности кластеров к конкретному файлу следующие:
— последовательное копирование объема данных, который соответствует размеру конкретного файла, при этом игнорируя состояние выделенных кластеров (надеемся на удачу);
— считка данных исключительно только из свободных кластеров (есть вероятность восстановления некоторых фрагментированных файлов). Этот метод использован в программе Hetman Partition Recovery.
Все эти действия можно произвести только в ситуации доступности всех файлов. В случае перезаписи хотя бы части информации в кластерах, восстановления файла не возможно.
Не смотря на то, что файловая система FAT устроена просто. При этом восстановление удаленного с диска файла, размеченного в данной системе, получается не всегда.
Однако, для ёмких носителей, к которым относятся жёсткие диски, Windows чаще использует файловую систему – NTFS, которая устроена значительно сложнее. Алгоритм восстановления данных с NTFS раздела является более сложным процессом, но приводящим к значительно уверенным результатам.