Чтение онлайн

ЖАНРЫ

Восстановление данных. Практическое руководство
Шрифт:

Анализ показывает, что основной причиной, по которой chkdsk отказывается проверять том, обычно становится порча файловой записи, описывающей

$MFT
. Если в процессе обновления
$MFT
внезапно отключить питание, то такой исход вполне вероятен, особенно на жестких дисках с емким аппаратным кэшем. Такие диски не успевают завершить сохранение секторов, потребляя энергию, накопленную в конденсаторах, а вот их младшие собраться с этим справляются. То же самое происходит при неудачном перемещении файла
$MFT
или физическом разрушении первого сектора MFT. Зеркальная копия
$MFT
во всех этих случаях остается цела, однако chkdsk по каким-то таинственным причинам не хочет ей пользоваться, и вы должны восстановить ее самостоятельно. Просто скопируйте первый сектор
$MFTMirr
в первый сектор
$MFT
! Поклонники утилиты Sector Inspector могут воспользоваться для этого командным файлом, приведенным в листинге 7.2.

Листинг 7.2. Командный файл для ручного восстановления $MFT из $MFTMirr, XXX — номер сектора $MFTMirr, YYY — номер сектора $MFT

SECINSPECT.EXE -backup d: backup.dsk XXX 1

SECINSPECT.EXE -restore d: backup.dsk YYY CONFIRM

Теперь можно смело запускать chkdsk. Если же chkdsk по-прежнему не работает, это может происходить по одной из следующих причин.

? Повреждение загрузочного сектора. Решить проблему можно, восстановив загрузочный сектор, используя методику, рассмотренную в гл. 5.

? Несовпадение списка отрезков файла

$MFT:$DATA
с истинным началом MFT. Чтобы решить эту проблему, найдите сектор с файловой записью
$MFT
и исправьте список отрезков. Вопросы, связанные с кодированием и декодированием списка отрезков, были изложены в гл. 6, а методика исправления списка отрезков — ранее в этой главе.

? Несовпадение размера кластера, указанного в загрузочном секторе с фактическим размером кластера. Определение истинного размера кластера и методика восстановления были рассмотрены ранее в этой главе.

Если же сбой был настолько серьезен, что вместе с

$MFT
пострадало и зеркало, задача сводится к восстановлению отформатированного диска. При тяжелых разрушениях файловой структуры, когда на диске образуется настоящий кавардак, восстановление тома полезно начинать не с чего-нибудь, а именно с его форматирования. Нет, это не первоапрельская шутка! Утилита format.exe формирует заведомо исправные ключевые структуры, а подключение файловых записей — не проблема. Главное — сохраните список отрезков файла
$MFT:$DATA
, если, конечно, он еще уцелел. Все остальное — дело техники!

Наш затянувшийся разговор о восстановлении данных подходит к своему логическому завершению, однако NTFS не стоит на месте, а интенсивно развивается. И хотя до сих пор эти изменения носили чисто косметический характер, в Windows Longhorn все обещает кардинальным образом измениться. Microsoft активно работает над новой файловой системой — Windows File System (WinFS). Сроки выхода WinFS постоянно переносятся, что и неудивительно, ведь разработка файловой системы — это не шутка!

По словам вице-президента Microsoft Боба Маглиа (Bob Muglia), WinFS — это все та же NTFS, дополненная расширениями SQL и XML. Насколько изменятся базовые структуры файловой системы, общественности до сих пор неясно. И уж совсем непонятно, зачем NTFS понадобились расширения SQL, когда эти возможности в нее закладывались изначально, просто их не успели завершить. Любой системный программист без проблем напишет драйвер, принимающий SQL/XML запросы и транслирующий их в обращения к драйверу текущей файловой системы! Что-либо менять в самой NTFS совсем необязательно. Как лично мне кажется, это всего лишь очередной маркетинговый трюк, подталкивающий пользователей к переходу на Longhorn!

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

Восстановление тома NTFS после форматирования под FAT16/32

При переформатировании диска операционные системы семейства Windows NT никогда не изменяют тип файловой системы, если только им не дать такое указание явно. Поэтому непреднамеренное переформатирование раздела NTFS под FAT16/32 крайне маловероятно. Windows 9x и MS-DOS, напротив, любой диск стремятся отформатировать под FAT16/32, не замечая, что на нем что-то уже находится. Непреднамеренная порча разделов NTFS в процессе установки Windows 9x/MS-DOS поверх Windows NT — обычное дело, через которое проходит уже второе поколение пользователей.

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

во всем похожа на восстановление тома NTFS, случайно переформатированного под NTFS. Единственное отличие состоит в том, что при создании таблицы размещения файлов (file allocation table) первые несколько тысяч файловых записей в MFT затираются безвозвратно. Впрочем, даже их можно попытаться собрать вручную, действуя по методике, описанной ранее в данной главе.

Файлы с уцелевшей файловой записью легко восстанавливаются с помощью утилит R-Studio, GetDataBack или EasyRecovery. Для ручного восстановления всего тома его необходимо заново отформатировать под NTFS, предварительно определив количество секторов в кластере. Далее действуем по плану — увеличиваем размер

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

Источники угрозы

Почему погибают дисковые разделы? Ниже приводится список наиболее распространенных причин, отсортированный в порядке убывания их "популярности".

? Ошибки оператора, вирусы, троянские программы.

? Отключение питания или зависание системы во время интенсивных дисковых операций, сопровождаемых обновлением MFT (например, удаление/добавление файлов или каталогов).

? Некорректное поведение различных дисковых утилит (Partition Magic, Ahead Nero, Norton Disk Doctor и т.д.).

? Физические дефекты оперативной памяти, приводящие к нарушению целостности дискового кэша и, следовательно, к порче самого диска.

? Некорректное поведение привилегированных драйверов, случайно или преднамеренно "залетающих" внутрь служебных структур драйвера NTFS.

Полезные советы

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

? Переместите

$MFT
подальше от начала раздела. Первые секторы раздела — это, как показала практика, самое небезопасное место (рис. 7.12). Во-первых, сюда стремятся попасть практически все вирусы. Невозможность прямого доступа к диску под управлением операционных систем из семейства Windows NT — это всего лишь миф. Если вам требуется аргументированное опровержение этого мифа, прочтите описание функции
CreateFile
и инструкцию к драйверу ASPI32. Во-вторых, некоторые утилиты (и в частности, Ahead Nero) при некоторых обстоятельствах путают жесткий диск с оптическим накопителем, записывая образ не "туда". Это значит, что в первых ~700 Мбайт физического диска (обратите внимание — физического диска, а не логического тома) не должно содержаться ничего ценного. В-третьих, если вы вдруг запустите WipeDisk или любую другую затирающую утилиту, первым погибнет именно
$MFT
, без которого весь дисковый том — это просто груда мусора. Можно привести и множество других, самых различных причин! Поэтому просто переместите
$MFT
, тем более, что это совсем несложно. Достаточно взять любой дефрагментатор, распространяющийся в исходных текстах (энтузиасты! ау! присоединяйтесь к проекту http://sourceforge.net/projects/opendefrag/), и слегка доработать его (рис. 7.13). Разумеется, резервная копия при этом всегда должна находиться под рукой.

Рис. 7.12. Нормальный дисковый том (MFT расположена в начале раздела)

Рис. 7.13. "Иммунизированный" дисковый том (MFT расположена в середине)

? Не допускайте фрагментации файла

$MFT
! Не создавайте на диске огромного количества мелких файлов и не заполняйте его более чем на 90%. Стандартный дефрагментатор, входящий в комплект штатной поставки Windows 2000/XP, не позволяет дефрагментировать
$MFT
. Для этой цели приходится прибегать к сторонним средствам, лучшим из которых, на мой взгляд, является О&О Defrag Pro от одноименной компании (http://www.oo-software.com). Это — действительно профессиональный дефрагментатор, к тому же поддерживающий командную строку.

Поделиться с друзьями: