Алгоритм восстановления данных
с NTFS раздела

Вот мы и подошли вплотную к теме восстановления файлов. В отличие от FAT, NTFS – очень удобная для восстановления данных файловая система, позволяющая полностью восстановить все занимаемые удалённым файлом секторы на диске. Но есть у неё и недостаток: при определённых обстоятельствах теряется имя файла. Впрочем, содержимое файла гораздо важнее его названия, так что недостаток этот хоть и неприятный, но не критичный.

Алгоритм восстановления NTFS

В статье «Анализ файловой системы NTFS» мы рассмотрели основные структуры данных файловой системы NTFS, далее мы рассмотрим алгоритм поиска удаленного файла.

Удаление файла

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

При удалении файла с HDD, USB-диска, карт памяти CompactFlash, MicroSd его имя исключается из индекса родительского каталога, а соответствующая ему запись MFT и занимаемые им кластеры освобождаются. Происходит пересортировка индекса, в результате которой информация об имени файла может быть утеряна. Соответственно, имя удалённого файла более не будет присутствовать в исходном каталоге.

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

Для того чтобы восстановить удалённые в NTFS файлы, необходимо просканировать MFT в поиске свободных записей. При обнаружении свободной записи становится возможным определить имя файла – оно хранится в одном из атрибутов. Как было сказано ранее, имя файла удаётся определить не всегда. Зато в отличие от файловой системы FAT указатели на кластеры, занимаемые удалённым файлом, продолжают существовать. Соответственно, удаётся восстановить файл любого размера и любой степени фрагментации – разумеется, при условии, что занимаемые им кластеры не были перезаписаны другими данными.

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

Особенностью NTFS является алгоритм выделения записей MFT. При выделении записи, Windows использует алгоритм, выделяющий первую по порядковому номеру доступную запись. Соответственно, записи MFT с малыми номерами выделяются чаще, чем записи с большими номерами.

Ранее мы публиковали статью о преимуществах файловых систем FAT и NTFS в нашем блоге.

Журнал файловой системы

Одним из преимуществ NTFS является особенность организации записи информации в виде транзакций. Все изменения на диске регистрируются в специальном файле – журнале файловой системы. Журнал изменений активен не всегда, но он содержит информацию о времени удаления и последнего редактирования файла.

В NTFS есть функция самовосстановления, и журнал файловой системы – один из её инструментов. Наиболее распространённая причина повреждения файловой системе – сбой во время операции записи. При возникновении сбоя в работе компьютера в процессе операции записи файла на диск операционная система анализирует журнал файловой системы. В журнале хранится информация о предстоящих обновлениях метаданных, а после их успешного обновления создаётся соответствующая запись.

Что происходит, если во время операции записи происходит сбой? В этом случае операционная система сможет проанализировать журнал файловой системы и «откатить» состояние файловой системы к предыдущему состоянию.

Журнал файловой системы не содержит нерезидентных пользовательских данных, но содержит все резидентные атрибуты для возможности отмены изменений. Соответственно, для восстановления больших файлов журнал непригоден.

Нужно отметить, что полезность журнала изменений файловой системы с точки зрения восстановления файлов ограничена; этот журнал приносит гораздо больше пользы в тех случаях, когда необходимо восстановить целостность файловой системы ценой отмены (утраты) последних записанных данных. Соответственно, программы, восстанавливающие диски NTFS , журнал изменений для своей работы не используют.

Author: Michael Miroshnichenko

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4.67 out of 5)