Восстановление данных. Практическое руководство
Шрифт:
Воспользовавшись любым редактором диска (например, Microsoft Disk Probe из комплекта Resource Kit), считаем первый сектор физического диска. Он должен выглядеть приблизительно так, как показано на рис. 5.4.
Рис. 5.4. Внешний вид MBR
Не правда ли, MBR выглядит как знаменитая Матрица? Ее формат кратко описан в таблице 5.1.
Таблица 5.1. Формат MBR
Смещение | Размер | Описание |
---|---|---|
0x000 | перемен. | Код загрузчика |
0x1BB | 4h | Идентификатор диска |
0x1BE | 10h | Partition 1 |
0x1CE | 10h | Partition 2 |
0x1DE | 10h | Partition 3 |
0x1EE | 10h | Partition 4 |
0x1FE | 0x2 | "Магическое
55h AAh , которое указывает, что данный сектор представляет собой MBR |
Первые
Кстати говоря, локализовав сообщения загрузчика в национальных версиях Windows, например, в русской, Microsoft допустила грубейшую стратегическую ошибку. Ведь в BIOS нет никаких кириллических шрифтов, поэтому русские символы выглядят бессмысленной абракадаброй.
По смещению
Со смещения
Таблица 5.2. Формат записи таблицы разделов
Смещение | Размер | Описание | ||||
---|---|---|---|---|---|---|
000 | 1ВЕ | 1CE | 1DE | 1EE | byte | Флаг активного загрузочного раздела (Boot Indicator). 80h — загрузочный раздел, 00h — незагрузочный раздел |
001 | 1BF | 1CF | 1DF | 1EF | Стартовая головка раздела | |
002 | 1C0 | 1D0 | 1E0 | 1F0 | byte | Стартовый сектор раздела (биты 0–5). Старшие биты стартового цилиндра (биты 6–7) |
003 | 1C1 | 1D1 | 1E1 | 1F1 | byte | Младшие биты стартового цилиндра (биты 0–7) |
004 | 1C2 | 1D2 | 1E2 | 1F2 | byte | Идентификатор системы (Boot ID), см. табл. 5.3 |
005 | 1C3 | 1D3 | 1E3 | 1F3 | byte | Конечная головка раздела |
006 | 1С4 | 1D4 | 1E4 | 1F4 | byte | Конечный сектор раздела (биты 0–5). Старшие биты конечного цилиндра (биты 6–7) |
007 | 1C5 | 1D5 | 1E5 | 1F5 | Младшие биты конечного цилиндра (биты 0–7) | |
008 | 1C6 | 1D6 | 1E6 | 1F6 | dword | Смещение раздела относительно начала таблицы разделов в секторах |
00C | 1CA | 1DA | 1EA | 1FA | dword | Количество секторов раздела |
Таблица 5.3. Возможные значения Boot ID
Boot ID | Тип раздела |
---|---|
00h | Раздел свободен |
0x01 | Раздел FAT12 (менее чем 32 680 секторов в томе или 16 Мбайт) |
0x04 | Раздел FAT16 (32 680–65 535 секторов или 16–33 Мбайт) |
0x05 | Расширенный раздел (extended partition) |
0x06 | Раздел BIGDOS FAT16 (33 Мбайт–4 Гбайт) |
0x07 | Раздел NTFS |
0x0B | Раздел FAT32 |
0x0C | Раздел FAT32 с поддержкой расширенной BIOS INT 13h |
0x0E | Раздел BIGDOS FAT16 с поддержкой расширенной BIOS INT 13h |
0x0F | Расширенный раздел с поддержкой расширенной BIOS INT 13h |
0x12 | Раздел EISA |
0x42 | Динамический диск |
0x86 | Раздел legacy FT FAT16 |
0x87 | Раздел legacy FT NTFS |
0x8B | Наследуемый отказоустойчивый том, отформатированный для FAT32 (Legacy FT volume formatted with FAT32) |
0x8C | Наследуемый отказоустойчивый том с поддержкой BIOS INT 13h , отформатированный для FAT32 (Legacy FT volume using BIOS INT 13h extensions formatted with FAT32) |
Техника восстановления главной загрузочной записи
Существует множество утилит для автоматического восстановления первичного загрузчика и таблицы разделов, к числу которых относятся, например, GetDataBack, Easy Recovery, Active@Data Recovery Software и др. До поры до времени они вполне успешно справлялись со своей задачей, восстанавливая даже полностью уничтоженные таблицы разделов, однако с появлением емких дисков, преодолевших барьер в 2 Гбайт с помощью всевозможных расширений, они стали часто путаться. Поэтому и доверять им больше нельзя. Если не хотите потерять свои данные — восстанавливайте MBR самостоятельно (тем более что это достаточно простая операция, не требующая особой квалификации). Восстановление значительно упрощается, если в вашем распоряжении имеется копия таблицы разделов, снятая с помощью Sector Inspector или любой другой подобной утилиты. К сожалению, чаще всего ее под рукой не оказывается…
Если операционная система отказывается загружаться, а на экране появляется сообщение BIOS, выглядящее примерно следующим образом:
Очень важно отличать сообщение BIOS от сообщений первичного загрузчика и загрузочного сектора. Зайдите в BIOS Setup и отключите все загрузочные устройства, оставив активным только диск
Восстановить сигнатуру
Если вы испытываете затруднение с дизассемблированием в уме, воспользуйтесь IDA PRO или HIEW. Вы не умеете дезассемблировать? Тогда попробуйте оценить степень "нормальности" первичного загрузчика визуально (однако для этого опять-таки требуется опыт работы с кодом). В начале более или менее стандартного загрузчика расположено приблизительно