Крис Касперски - Восстановление данных. Практическое руководство
- Название:Восстановление данных. Практическое руководство
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-455-X
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Крис Касперски - Восстановление данных. Практическое руководство краткое содержание
Книга представляет собой пошаговое руководство по восстановлению поврежденных данных на жестких и оптических дисках. Подробно рассмотрена структура популярных файловых систем: NTFS, ext2/ext3, UFS/FFS и др. Описаны автоматические методы восстановления данных для операционных систем Windows и Linux. Приведены способы ручного восстановления, используемые в случае, когда автоматическое восстановление невозможно. Материал сопровождается большим количеством полезных советов и исчерпывающим справочным материалом. На компакт-диске помешены полезные утилиты и исходные коды, приведенные в книге.
Для пользователей ПК
Восстановление данных. Практическое руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
К блоку параметров BIOS вплотную примыкает его продолжение — расширенный блок параметров BIOS (extended BPB), хранящий номер первого кластера MFT, ее размер в кластерах, номер кластера с зеркалом MFT, а также некоторую другую служебную информацию. В отличие от FAT16/FAT32, MFT может располагаться в любом месте диска (для борьбы с BAD-секторами это актуально). При нормальном развитии событий MFT располагается практически в самом начале диска (где-то в районе четвертого кластера) и, если только она не была перемещена, то ее легко найти глобальным поиском (искать следует строку FILE*
по смещению о от начала сектора). При разрушении или некорректном заполнении расширенного блока параметров BIOS драйвер файловой системы отказывается монтировать раздел, объявляя его не отформатированным.
Следом за расширенным блоком параметров BIOS идет код самозагрузки (Bootstrap Code), который ищет на диске загрузчик операционной системы (у операционных систем из семейства Windows NT это — файл ntldr), загружает его в память и передает ему управление. Если код самозагрузки отсутствует, загрузка операционной системы становится невозможной, однако при подключении восстанавливаемого диска вторым раздел должен быть прекрасно виден. Повреждение кода самозагрузки вызывает перезагрузку компьютера или его зависание.
Наконец, завершает загрузочный сектор уже известная нам сигнатура 55h AAh
, без которой он ни за что не будет признан загрузочным. Подробная информация обо всех полях загрузочного сектора NTFS приведена в табл. 5.8.
Таблица 5.8. Значения полей загрузочного сектора NTFS
Смещение | Размер | Описание |
---|---|---|
0x00 |
3 байта | Инструкция перехода |
0x03 |
8 байт | OEM ID |
0x0B |
WORD |
Количество байт на сектор (для жестких дисков всегда 512) |
0x0D |
BYTE |
Количество секторов на кластер |
0x0E |
WORD |
Количество зарезервированных секторов, всегда равно 0 |
0x10 |
3 байта | He используется NTFS и всегда должно быть равно 0 |
0x13 |
WORD |
Не используется NTFS и всегда должно быть равно 0 |
0x15 |
BYTE |
Дескриптор носителя (media descriptor) — для жестких дисков всегда равен 0xF8 |
0x16 |
WORD |
Не используется NTFS и всегда должно быть равно 0 |
0x18 |
WORD |
Количество секторов на дорожку |
0x1A |
WORD |
Количество головок |
0x1C |
DWORD |
Количество скрытых секторов |
0x20 |
DWORD |
Не используется NTFS и всегда должно быть равно 0 |
0x24 |
DWORD |
Не используется NTFS и всегда должно быть равно 0 |
0x28 |
8 байт | Общее количество секторов (total sector) |
0x30 |
8 байт | Логический номер кластера, с которого начинается MFT |
0x38 |
8 байт | логический номер кластера, с которого начинается зеркало MTF |
0x40 |
DWORD |
Количество кластеров на сегмент (File Record Segment) |
0x44 |
DWORD |
Количество кластеров на блок индексов (index block) |
0x48 |
8 байт | Серийный номер тома |
0x50 |
DWORD |
Контрольная сумма (0 — не подсчитывать). |
0x54 |
426 байт | Код самозагрузки (Bootstrap Code) |
0x01FE |
WORD |
Сигнатура 55 AA |
Техника восстановления загрузочного сектора
Осознавая значимость загрузочного сектора, операционная система Windows NT при форматировании диска создает его зеркальную копию (однако делает она это только на разделах NTFS). Для различных версий Windows расположение резервной копии загрузочного сектора различно. Так, Windows NT 4.0 располагает ее в середине логического диска, a Windows 2000 — в последнем секторе раздела. Если таблица разделов уцелела, то для восстановления загрузочного сектора достаточно просто перейти в начало следующего раздела и отступить на сектор назад (Windows 2000) или поделить количество секторов логического диска пополам (с округлением в нижнюю сторону) и перейти к сектору с полученным номером, дав редактору диска команду GO(Windows NT 4.0).
Если таблица разделов разрушена, то найти резервную копию загрузочного сектора можно глобальным поиском (ищите строку NTFS
по смещению 3 от начала сектора). Поскольку положение копии фиксировано и отсчитывается от начала логического диска, мы можем с абсолютной уверенностью определить границы раздела. Предположим, что копия загрузочного сектора найдена в секторе 1289724
, а поле NumberSectors
содержит значение 12289661
. Тогда номер конечного сектора раздела равен 1289724
, а номер стартового сектора можно вычислить следующим образом: 1289724 - 12289661 == 63
. Поскольку загрузочный сектор расположен на расстоянии одной головки от таблицы разделов, что соответствует значению SectorPerTrack
, мы сможем восстановить и ее.
Если резервных копий загрузочного сектора нет, его придется реконструировать вручную. К счастью, это совсем не так сложно, как может показаться на первый взгляд. В поле идентификатора производителя заносится строка NTFS
(обратите внимание, что на конце этой строки должны быть четыре пробела). Поля, задающие количество секторов на дорожке и количество головок, заполняются, исходя из текущей геометрии диска. Количество скрытых секторов (то есть количество секторов, расположенных между началом раздела и загрузочным разделом) равно количеству головок. Общее количество секторов в разделе вычисляется на основании его размера (если точный размер не известен, берите значение с запасом).
Количество секторов в кластере определить сложнее. Это особенно справедливо, если при форматировании диска было задано количество секторов на кластер, отличное от значения по умолчанию. Но ситуация вовсе не безнадежна. Последовательно сканируя файловые записи в MFT, найдите файл с предопределенной и заранее известной сигнатурой. Пусть, для определенности, это будет файл NTOSKRNL.EXE. Откройте его аутентичную копию в HEX-редакторе, найдите уникальную последовательность, гарантированно не встречающуюся ни в каких других файлах и расположенную в пределах первых 512 байт от его начала, после чего найдите эту сигнатуру глобальным поиском по всему диску. Начальный номер кластера вам известен (он содержится в MFT), логический номер сектора известен тоже (его нашел дисковый редактор). Теперь остается лишь соотнести эти две величины между собой. Естественно, если дисковый редактор найдет удаленную копию NTOSKRNL.EXE (или на диске будут присутствовать несколько файлов NTOSKRNL.EXE), данный метод даст осечку, поэтому полученный результат необходимо уточнить, проведя аналогичные исследования с использованием других файлов.
Читать дальшеИнтервал:
Закладка: