Как я могу написать программу, которая может восстанавливать файлы в FAT32

Как мне написать программу, которая может восстанавливать файлы в FAT32?


person user50819    schedule 26.02.2009    source источник
comment
Это довольно сложная тема. Есть ли причина, по которой вы не можете использовать одно из множества уже доступных приложений для восстановления данных?   -  person Adam Lassek    schedule 26.02.2009


Ответы (3)


Это довольно сложно, но FAT32 очень хорошо задокументирован:

Однажды я написал инструмент для прямого доступа к FAT32, используя только эти ресурсы:

Но я никогда не пытался восстановить файлы. Успешное восстановление файла зависит от нескольких факторов:

  1. Файл должен физически «существовать» на жестком диске.
  2. Вы должны знать, где начинается файл
  3. Вы должны знать, что ищете (Заголовки..)
person Community    schedule 26.02.2009

Это зависит от того, что случилось с файлами, которые вы пытаетесь восстановить. Данные могут быть все еще в разделе или уже могут быть перезаписаны. Есть много готовых решений. Простой поиск в Google должен дать вам множество программ, которые могут попытаться восстановить данные, но нет 100% уверенности в том, что они вернутся. Если вы действительно хотите восстановить их самостоятельно, вам нужно будет написать что-нибудь для чтения необработанного раздела и игнорировать маркеры отсутствующих файлов.

вот программа (написанная Томасом Темпельманом. Этот замечательный парень), которая может вам помочь . Вы можете сделать копию раздела, игнорируя поврежденные биты, а затем работать с копией, чтобы ничего не испортить, и вы также можете восстановить данные непосредственно с нее.

person Alex Fort    schedule 26.02.2009
comment
В моем случае файл не был перезаписан. Можете дать несколько статей? - person user50819; 26.02.2009
comment
Возможно, вы не сможете определить, был ли файл перезаписан. Как только файл помечается как удаленный, это пространство становится доступным для всего, что может понадобиться. Просто поищите в Google восстановление файлов FAT32, и вы найдете множество ресурсов, включая бесплатные приложения, которые могут помочь. - person Alex Fort; 26.02.2009
comment
Имейте в виду, что отсутствие перезаписи — это только часть проблемы. Вторая часть заключается в том, что файл не должен быть фрагментирован, так как выделение памяти теряется при освобождении места (поэтому всегда следует проводить дефрагментацию как можно чаще). Чтобы действительно восстановить файл, вы, как правило, будете успешными только в том случае, если верно все следующее: - Сектора, которые были выделены для него, еще не были перезаписаны. -Файл не был фрагментирован. -Заголовок фактических данных файлов является идентифицируемым. -Заголовок или какая-то известная часть файла указывает размер файла. - person Myforwik; 13.08.2009

Я думаю, вы имеете в виду вырезание данных, то есть чтение физического устройства и восстановление ранее несвязанных файлов на основе некоторых знаний (например, когда вы найдете две буквы, PK, это весьма вероятно, чем zip-архив). далее то же самое для JFIF для JPEG).

В таком случае предлагаю вам изучить исходный код PhotoRec отличного (на мой взгляд, лучшего) Инструмент с открытым исходным кодом для вырезания данных.

person Stefano Sanfilippo    schedule 05.05.2013