Статьи (106)

Восстановление данных в FAT и NTFS: тонкая работа.

04 Апр 2014
  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 1. Рейтинг: 5 из 5

Время собирать камни.

Эта статья рассказывает о теме не совсем обычной, скажем так, не повседневной. Ведь не каждый день у вас происходит сбой файловой системы? Надеюсь, что так. Итак, эта статья поднимает тему восстановления файловых систем FAT и NТFS, или же, хотя бы, спасения некоторых данных из безвозвратно поврежденных систем. Хочется сразу оговориться. Что данные способы восстановления используют минимум стороннего софта, и, в принципе, можно говорить о восстановлении вручную. Если восстанавливать в ручную действительно, то это придется делать в машинных кодах, однако подобная «магия» доступна лишь нескольким наиболее талантливым программистам на планете. Также подразумевается, что некоторые базовые данные о файловых системах читатель уже знает, так что речь пойдет по существу. По данной тематике на нашем портале также имеются хорошие статьи.

файл в нтфс и в фат

Также стоит заранее отметить, что восстановление FAT-систем куда проще и логичнее, чем NTFS. Впрочем это будет видно из дальнейшего содержания статьи.

Восстановление FAT: ковка разорванной цепи.

Для начала поговорим о восстановлении разделов жесткого диска, так называемых партициев. Если первый цилиндр (0/0/1) забит хламом (битой информацией), то его надо полностью обнулить. Сделать это можно при помощи утилиты Disk Editor. Далее, для последующего восстановления необходимо скопировать с любого другого диска на повреждённый разделы MBR и PT (сектор 0/0/1). После этого надо удалить все записи, кроме самой первой. Далее в нее надо внести заведомо неверную и невероятную информацию (зачем это нужно будет понятно чуть ниже по тексту) – например в данных о количестве цилиндров впишите максимально возможное значение: 99999999.

 

пример

После этого запускаем утилиту DiskDoctor, с помощью которой ищем неисправности нашего «бутафорского раздела». Когда программа обнаруживает невероятное значение, она предлагает его исправить, заодно предложив исправить и другие ошибки. Если исправление проходит удачно, программа индексирует уже существующие разделы (т.е. они вновь становятся частью файловой системы, а не мертвой зоны на диске). Если все прошло успешно, то после перезагрузки вы получите восстановленную систему с небольшим «бутафорским придатком» в виде дополнительного раздела размером 4 кб. По сути он не мешает, но и уже не нужен. Можно безболезненно удалить при помощи любой программы-редактора разделов.

размеры кластеров

Теперь можно перейти непосредственно к восстановлению повреждённых данных. При восстановлении данных следует иметь в виду, что, не имея достоверной информации в таблице расположения файлов (FAT) автоматическое или полуавтоматическое восстановление файлов размером более одного кластера программами типа UnFormat или RecreateData носит случайный характер. Таким образом, алгоритм восстановления данных подобными программами основан на поиске кластеров раздела диска с информацией о подкаталогах, анализе их содержания на предмет определения места расположения каталогов, определения номеров начальных кластеров каждого файла и анализе даты создания или стирания файлов. По этой информации строится дерево каталогов на логическом диске и расположение файлов по подкаталогам. Эта информация восстановима с большой степенью точности. В случае разрушения корневого каталога (ROOT) информация и файлах в корневом каталоге не восстанавливается, а имена директорий заменяются чисто условными именами.

Существует проблема с файлами, которые занимают не один кластер, а более. Такие файлы восстанавливаются с помощью постоянной случайной последовательной состыковки различных неоконченных кластеров. И потому, восстановление в данном случае с большой вероятностью абсолютно некорректно. Однако есть небольшая лазейка. Если на машине использовалась операционная система из 9х серии, то можно ей воспользоваться. Дело в том, что данные ОС хранят на своих разделах своп-файлы. В которых, при удачном стечении обстоятельств, могут сохраниться куски рут-директории, части системных файлов, а, иногда, при условии небольшого их размера, вся FAT-система целиком. Для того. Чтобы найти подобные важные кусочки, надо просматривать директории по специальным маскам.

пример поврежденной области

Для того, чтобы начать, можно использовать маску F8 FF FF FF. После этого можно искать уже по любым известным вам или случайно составленным 16 или 32-разрядным кластерам( в зависимости от того, какая у вас файловая система). Таким образом, основной алгоритм состоит в том, чтобы искать наиболее полные и свежие части FAТ, а потом попробовать составить из них наиболее целую версию файловой системы. Уже после этого можно использовать утилиты вроде DiskDoctor’а, чтобы попробовать «собрать» и «запустить» получившийся «билд».

Восстановление NTFS или «когда же это кончится!»

NTFS-система куда быстрее и надежнее, чем FAT. Однако, это в свою очередь, ведет к существенному усложнению структуры NTFS по сравнению с FAT32. Даже детальное изучение структуры записей, хранящихся в MFT (главной таблице файлов), не гарантирует возможность восстановления данных «вручную». Ситуация усугубляется тем, что на сегодняшний день практически отсутствуют инструменты, обеспечивающие удобные средства просмотра и редактирования MFT. Для восстановления NTFS потребуется куда более широкий спектр программ: Norton DiskEdit и Paragon Partition Manager, а также утилиты Partition Table Editor, входящей в состав пакета Norton PartitionMagic.

Может случиться ситуация, когда операционной системе Windows при загрузке не удается опознать логический диск с NTFS вследствие повреждения описывающего диск элемента таблицы разделов. Чтобы получить более полное представление о возникшей ситуации, целесообразно запустить утилиту Norton Partition Table Editor. Чтобы просмотреть цепочку дополнительных таблиц расширенного раздела (EPBR), выполните следующие действия.

1. Переместите курсор в строку, соответствующую расширенному разделу (его код равен 0Fh).

2. Щелкните на кнопке Goto EPBR (Перейти на EPBR), расположенной под таблицей.

пример стартового сектора

Если вы знаете, что восстанавливаемый NTFS-раздел находится на прежнем месте, но в соответствующей ему строке указан неверный тип раздела, вы можете попробовать установить корректное значение принудительно. Для этого щелкните на кнопке Set Type и в открывшемся окне выберите требуемое значение . Для раздела NTFS оно равно 07h. Если вам известны корректные значения других параметров раздела и они отличаются от представленных в таблице, вы можете (предварительно запомнив или записав на бумаге текущие значения) ввести их в поля таблицы. Чтобы внесенные изменения были записаны на диск, щелкните на кнопке Save Change .

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

Таким образом в данной статье были рассмотрены приемы восстановления данных в самых распространённых файловых системах. Очень бы хотелось пожелать, чтобы эти знания остались для вас лишь теорией, однако. Как показывает практика, сбой все же рано или поздно происходит=(