Помощь по
восстановлению
данных любым
удобным
способом
Восстановление данных
 
Блог
 
Алгоритмы восстановления данных по содержимому и карвинг-алгоритмы

Алгоритмы восстановления данных по содержимому и карвинг-алгоритмы


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

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

Обнаружение удаленных файлов с помощью поиска по сигнатурам

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

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

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

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

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

Таким образом, алгоритм считывает блок данных с диска, который не занят никаким файлом. Что будет дальше? Алгоритм сканирует этот блок, пытаясь выяснить, можно ли идентифицировать этот конкретный блок данных как начало файла в известном формате. Это делается путем сопоставления данных со списком сигнатур – подписей, хранящимся во встроенной базе данных программы (отсюда и название «поиск по сигнатурам»). Если обнаружена известная сигнатура, инструмент … радостно сообщает, что нашел файл? Не так быстро. До этого алгоритм выполнит хотя бы одну вторичную проверку, а иногда требуется несколько проверок. Например, если программа обнаруживает подпись %PDF%, она не сообщает об обнаружении файла PDF немедленно. В конце концов, у нас уже есть две %PDF% подписи в этой статье, но это никоим образом не файл PDF! Алгоритм проанализирует блок данных, чтобы узнать, соответствуют ли его другие данные структуре определенного файла.

Читайте также:  Программа для восстановления данных

Итак, скажем, блок данных определенно принадлежит известному файлу (скажем, PDF-документу). Что будет дальше?

Следующим шагом будет определение длины файла. Длина файла может быть рассчитана путем дальнейшего анализа информации, заложенной в заголовок файла. Определив длину файла, мы можем легко вычислить его начало и конец, или первый и последний секторы, принадлежащие этому файлу … или нет?

Проблемы создания резервных копий данных

Восстановление по методу поиска сигнатур – простой и надежный способ, если вы восстанавливаете один не фрагментированный файл из непрерывного фрагмента свободного пространства. В реальной жизни это случается редко. Чаще всего пробелы свободного пространства разбросаны по диску. Эти пробелы находятся между файлами. Их размер и расположение зависят от многих факторов, таких как используемая файловая система и версия Windows, объем свободного места на диске и не зависят от того, давно ли вы запускали дефрагментацию в этом разделе. В результате восстановление удалённого файла по его содержимому становится своего рода лотереей. Если файл невелик или он хранится в непрерывном фрагменте свободного пространства, этот файл может быть полностью восстановлен. Однако, если файл был фрагментирован, разные алгоритмы поиска по сигнатурам ведут себя совершенно по-разному.

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

«Разреженные» файлы

Другие алгоритмы игнорируют файловую систему и сканируют всю область диска. Этот подход также может не показать хороших результатов, если восстанавливаемый файл был фрагментирован. Тем не менее, он может обеспечить лучший результат в таких файловых системах, как NTFS (а также ext2 / ext3 / ext4, используемых в Linux), которые используют так называемые разреженные файлы. Такой файл пытается более эффективно использовать пространство файловой системы, когда система создает новый большой файл. Вместо того, чтобы выделять необходимое место на диске (и на самом деле записывать нули на диске, что происходит очень медленно, когда вы создаете, файл, содержащий, к примеру, длинный фильм), использование разреженных файлов позволяет системе записывать только краткую информацию (метаданные), представляющие собой пустые блоки на диске вместо фактического «пустого» пространства. В результате блоки данных записываются на диск только тогда, когда они содержат реальные (непустые) данные.

Читайте также:  Что такое восстановление данных: работа с удаленными файлами, отформатированными и поврежденными разделами

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

Фрагментация

Следующая проблема — фрагментация. В реальных сценариях восстановления данных фрагментация может быть вашим злейшим врагом, о чем мы подробно рассказывали в статье «Восстановление фрагментированных файлов». Увы, для этой проблемы не существует универсального решения «все-в-одном». Все алгоритмы восстановления данных работают с фрагментацией по-разному, пытаясь восстановить как можно больше полезной информации. Если вас интересует эта проблема, нажмите на ссылку выше, чтобы узнать больше.

Нет файловой системы?

Что должна делать программа восстановления данных, если на диске нет файловой системы? Хотя вы всегда можете использовать поиск по сигнатурам для выполнения восстановления данных, в данном случае это не оптимальный вариант. Вместо этого некоторые из более продвинутых программ, таких как RS Partition Recovery, попытаются сначала найти и восстановить исходную файловую систему. Как это возможно?

Конечно, могут быть разные сценарии. Например, если диск с файловой системой NTFS отформатирован (или если диск перераспределен по разделам), вся файловая система может быть сохранена, поскольку она хранится на диске в виде файла. Да, вся файловая система — это не что иное, как файл с именем $MFT. Поэтому, если программа для восстановления данных сможет сначала обнаружить (и восстановить) один файл, то произвести восстановление других файлов раздела будет намного проще. Не каждая из представленных на рынке программа может это сделать, а имеющие данную функцию обычно являются флагманским продуктом разработчика и, соответственно, самым дорогим из его инструментов. Если вам нужен подобный инструмент, попробуйте RS Partition Recovery.

Вывод

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

Comments are closed.