- •Прежде всего... Меры предосторожности
- •Пожар в здании, где находится компьютер или стихийные бедствия. Общие принципы восстановления информации
- •С чего начать
- •Проверка параметров bios
- •Тип и параметры диска
- •Расширенные параметры bios
- •Установка параметров bios по умолчанию
- •Структура файловой системы
- •Восстановление partition table
- •Восстановление данных вручную
- •Формат записи значений цилиндра и сектора (10 и 6 бит соответственно)
- •Значение "относительного сектора"
- •Восстановление винчестера, разбитого на несколько логических дисков.
- •Восстановление загрузочного сектора fat Простейший случай. Разрушен только Boot Sector
- •Непростой случай. Разрушен не только Boot Sector
- •Как восстановить Boot Sector вручную
- •Восстановление загрузочного сектора ntfs
- •Восстановление загрузочного сектора первого раздела
- •Восстановление резервного загрузочного сектора, если первичный сектор отсутствует, поврежден или содержит неверные данные
- •Восстановление загрузочных секторов в Extended partitions
- •Восстановление самой fat Резервная копия
- •Файл подкачки
- •Проверка состояния файловой системы fat
- •Проверка параметров bios
- •Тип и параметры диска
- •Расширенные параметры bios
- •Установка параметров bios по умолчанию
- •Анализ главной загрузочной записи mbr и таблицы разделов
- •Описание формата таблицы разделов
- •Прослеживание списка разделов диска
- •Проверка таблицы разделов при помощи программы diskedit
- •Сохранение параметров диска и таблицы разделов диска
- •Исследование расширенного раздела диска
- •Сохранение содержимого таблиц логических дисков
- •Исследование логических дисков fat
- •Проверка загрузочного сектора
- •Анализ зарезервированных секторов
- •Формат таблицы fat
- •Просмотр таблицы fat
- •Формат каталогов
- •Просмотр каталогов
- •Каталоги в файловой системе vfat
- •Область данных
- •Поиск и восстановление файлов в разделах fat
- •Поиск с помощью программы Norton File Find
- •Поиск с помощью программы diskedit
- •Поиск разделов
- •Поиск таблиц fat
- •Поиск потерянных каталогов
- •Восстановление потерянных каталогов и файлов
- •Один из алгоритмов восстановления области данных
- •Приступим
- •А если Root Directory восстановить не удалось?
- •Этот способ применим как для каталогов, так и для отдельных файлов. Восстановление данных в разделах ntfs (с) Александр Фролов, 2002, http://www.Frolov.Pp.Ru/, http://www.Datarecovery.Ru/
- •Файловая система нового поколения для Microsoft Windows nt/2000
- •Поиск основных внутренних структур ntfs
- •Загрузочный сектор раздела ntfs
- •Определение геометрии раздела ntfs
- •Размер сектора
- •Размер кластера
- •Начало таблицы mft и копии ее первых записей
- •Размер записи таблицы mft
- •Поиск главной таблицы файлов mft
- •Атрибуты файла
- •Поиск атрибутов в записях mft
- •Массив корректировки секторов записи mft
- •Прослеживание списка атрибутов
- •Формат атрибутов файла
- •Заголовок атрибута файла
- •Проблемы с оборудованием
- •Термокалибровка
- •Отказ модуля диагностики
- •Мультисекторные операции
- •Вычисление зон предкомпенсации
- •Потеря сигнала готовности
- •Ошибка чтения сектора
- •Восстановление 0-й дорожки
Описание формата таблицы разделов
Формат самого первого сектора жесткого диска можно представить следующим образом:
Смещение, байт |
Размер, байт |
Описание |
0 |
0x1BE |
Главная загрузочная запись |
0x1BE |
0x10 |
Элемент таблицы разделов диска |
0x1CE |
0x10 |
Элемент таблицы разделов диска |
0x1DE |
0x10 |
Элемент таблицы разделов диска |
0x1EE |
0x10 |
Элемент таблицы разделов диска |
0x1FE |
0x2 |
Признак таблицы разделов - значение 0xAA55 |
Как видно из этой таблицы, байты со смещением от 0 до 0x1BE занимает главная загрузочная запись, то есть программа. Далее идут четыре элемента таблицы разделов, причем каждый элемент занимает 0x10 байт. После таблицы располагаются два байта признака таблицы разделов.
В элементе таблицы раздела записана информация о расположении и размере раздела в секторах, а также о назначении раздела. Формат элемента таблицы раздела представлен ниже:
Смещение, байт |
Размер, байт |
Описание |
0 |
1 |
Признак активного раздела: 0 - раздел неактивный; 0x80 - раздел активный |
0x1 |
1 |
Номер головки начального сектора раздела |
0x2 |
2 |
Номер сектора и дорожки начального сектора раздела |
0x4 |
1 |
Тип раздела, или 0, если раздел свободный |
0x5 |
1 |
Номер головки последнего сектора раздела |
0x6 |
2 |
Номер сектора и дорожки последнего сектора раздела |
0x8 |
4 |
Относительный номер сектора начала раздела |
0xC |
4 |
Размер раздела в секторах |
Первый байт элемента таблицы раздела содержит признак активного раздела. Если раздел активный, из него будет выполняться загрузка операционной системы. Часто диск содержит одновременно несколько активных разделов, принадлежащих разным операционным системам.
Следующие три байта определяют физический адрес на диске начального сектора раздела (описывающий данный элемент раздела).
В байте со смещением 1 записан номер головки начального сектора раздела. В двухбайтовом поле со смещением 2 закодирован номер сектора и номер дорожки самого первого сектора раздела. При этом биты 0...5 этого поля задают номер сектора, а биты 6...15 - номер дорожки.
Байт со смещением 4 содержит тип раздела, зависящий от типа операционной системы и типа файловой системы.
Ниже мы привели некоторые наиболее распространенные типы (здесь FAT-12, FAT-16 и FAT-32 обозначают различные модификации файловой системы FAT, подробнее об этом мы расскажем позже):
Тип раздела |
Описание |
0x00 |
Свободный раздел |
0x01 |
Первичный раздел MS-DOS FAT-12 |
0x04 |
Первичный раздел MS-DOS FAT-16 |
0x05 |
Расширенный раздел |
0x06 |
Первичный раздел FAT-16 |
0x07 |
Первичный раздел NTFS |
0x0B |
Первичный раздел Windows FAT-32 |
0x0C |
Расширенный раздел Windows FAT-32 |
0x0E |
Расширенный раздел Windows FAT-16 |
0x0F |
Первичный раздел Windows FAT-16 |
0x82 |
Раздел Swap ОС Linux |
0x83 |
Первичный раздел ОС Linux EXT2FS/XIAFS |
0x85 |
Расширенный раздел Linux |
В байте таблицы разделов со смещением 5 и двухбайтовом слове со смещением 6 записаны номер головки, номер сектора и номер дорожки последнего раздела.
Последние два поля элемента таблицы разделов имеют длину 4 байта и содержат, соответственно, относительный номер самого первого сектора в разделе (то есть относительный номер сектора начала раздела) и количество секторов, имеющихся в разделе. Именно эти поля используются операционной системой Microsoft Windows NT для вычисления расположения раздела.
Остановимся подробнее на относительном номере самого первого сектора в разделе.
Значение относительного номера, равное 0, соответствует дорожке 0, головке 0, сектору 1. При увеличении относительного номера сектора вначале увеличивается номер сектора на дорожке, затем номер головки, и, наконец, номер дорожки. Зная номер дорожки, номер сектора на дорожке и номер головки, можно вычислить относительный номер сектора по следующей формуле:
RelSect = (Cyl * Sect * Head) + (Head * Sect) + (Sect - 1)
Здесь Cyl обозначает номер дорожки, Sect - номер сектора на дорожке, Head - номер головки.
Обычно разделы диска начинаются с четных номеров дорожек, за исключением самого первого раздела. Этот раздел может начинаться с сектора 2 нулевой дорожки (головка 0), так как самый первый сектор диска занят главной загрузочной записью.