Рис. 7.7. R-Studio осуществляет поиск уцелевших файловых записей
В процессе сканирования будут найдены все уцелевшие файлы (как удаленные, так и нет). Кроме того, будет восстановлена структура каталогов, включая и корневой каталог (рис. 7.8). Постойте! Как же так? Ведь, как вы помните, при форматировании корневой каталог был уничтожен и сформирован заново! Но ничего удивительного в этом нет. Просто файловая система NTFS еще раз доказала свою живучесть — уничтожить ее можно, скорее всего, только динамитом. В отличие от FAT, в NTFS каталоги являются лишь вспомогательной структурой данных, проиндексированной для ускорения отображения их содержимого. Всякая файловая запись, независимо от своего происхождения, содержит ссылку на родительский каталог, представляющую собой номер записи в MFT. А запись корневого каталога всегда располагается по одному и тому же адресу!
Рис. 7.8. Восстановленная структура каталогов
Удаленные файловые записи могут ссылаться на уже уничтоженные каталоги. R-Studio собирает их в папку $$$Folder XXX , где XXX — порядковый номер каталога. Поэтому иерархия подкаталогов в большинстве случаев успешно восстанавливается.
Просмотр виртуального дерева обнаруженных файлов осуществляется нажатием кнопки или с помощью соответствующей команды контекстного меню. Выбрав файл (или даже целый каталог с большим количеством вложенных подкаталогов), нажмите клавишу . При желании можно выполнить предварительный просмотр или редактирование (выбрав из контекстного меню пункт Edit|View). Это достаточно мощный инструмент, отображающий содержимое восстанавливаемого файла со всеми его атрибутами, списками отрезков и т.д. в удобочитаемом формате. При желании можно восстановить все файлы за одну операцию ( Recover All) или выбрать восстановление по маске ( Mask). Хваленая утилита EasyRecovery от Data Recovery Software (рис. 7.9), вопреки своему названию, простотой управления отнюдь не отличается и имеет довольно специфические особенности поведения. С настройками по умолчанию никаких файлов на отформатированном разделе эта утилита не увидит. Чтобы заставить ее работать, необходимо нажать кнопку Advanced Optionsи в раскрывшемся окне выбрать опцию Ignore MFT. Однако и в этом случае качество восстановления будет оставлять желать лучшего.
Рис. 7.9. Красивый интерфейс EasyRecovery еще не говорит о высоком качестве восстановления данных
Ручное восстановление жесткого диска после форматирования
Нашей целью будет ручное восстановление всего отформатированного раздела без использования дополнительных носителей информации и дорогостоящих утилит от сторонних производителей. Все что для этого потребуется — это любой редактор диска (предпочтительнее всего, конечно же, NT Explorer от Runtime Software, но на крайний случай сойдут и бесплатные Disk Probe и Sector Inspector от Microsoft) в комбинации со встроенной утилитой chkdsk.
В процессе форматирования происходит необратимое разрушение большого количества ключевых структур данных, восстанавливать которые вручную было бы слишком затруднительно. К счастью, для извлечения особо ценных файлов этого и не требуется! Идея состоит в том, чтобы вернуть разделу потерянные файловые записи, а все остальные восстановительные операции поручить утилите chkdsk.
Дизассемблирование показывает, что единственной структурой данных, без которой не может работать chkdsk, является атрибут $DATA
файла $MFT
. А раз так, все, что требуется сделать, сводится к воссозданию прежнего файла $MFT:$DATA
и его размещению поверх старых файловых записей. В простейшем случае, если файл $MFT:$DATA
не фрагментирован, это достигается так называемым спекулятивным увеличением его длины. Как это сделать?
Запускаем NT Explorer, переходим в начало MFT ( Goto|Mft), выделяем файл $MFT
, находим атрибут $DATA
( 80h
) и увеличиваем поля Allocated size
, Real Size
и Compressed Size
на требуемую величину, параллельно с этим корректируя список отрезков (рис. 7.10). Поле Last VCN
трогать не нужно, так как оно будет исправлено утилитой chkdsk. Как определить длину нефрагментированного файла MFT? Она равна разнице номеров первого и последнего секторов, в начале которых присутствует сигнатура FILE
, умноженной на 512 байт (исключая сектора, принадлежащие $MFTMirr
). Известные мне дисковые редакторы не поддерживают поиска последнего вхождения, поэтому соответствующую утилиту приходится писать самостоятельно. К счастью, точную длину MFT определять совершенно необязательно, и вполне допустимо взять ее с запасом, так как лишнее все равно отсеет chkdsk. Действуйте по принципу — лучше перебрать, чем недобрать.
Читать дальше
Конец ознакомительного отрывка
Купить книгу