Таблица 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, выглядящее примерно следующим образом:
Disk Boot failure, Non-System disk or disk error...
Press <Enter> to restart
то это указывает на разрушение сигнатуры
55h AAh
, обычно сопровождаемое смертью первичного загрузчика.
Примечание
Очень важно отличать сообщение BIOS от сообщений первичного загрузчика и загрузочного сектора. Зайдите в BIOS Setup и отключите все загрузочные устройства, оставив активным только диск
A:
(и не забудьте извлечь из него дискету). А теперь перезагрузитесь и запомните, какое сообщение появится на экране. Это и будет "ругательством" BIOS.
Восстановить сигнатуру
55h AAh
можно в любом дисковом редакторе. Когда будете это делать, убедитесь, что в начале диска присутствует осмысленный код первичного загрузчика (master boot code).
Рекомендация
Если вы испытываете затруднение с дизассемблированием в уме, воспользуйтесь IDA PRO или HIEW. Вы не умеете дезассемблировать? Тогда попробуйте оценить степень "нормальности" первичного загрузчика визуально (однако для этого опять-таки требуется опыт работы с кодом). В начале более или менее стандартного загрузчика расположено приблизительно
100h
байт машинного кода, в котором обнаруживаются последовательности:
00 7C
,
1B 7C
,
BE 07
,
CD 13
,
CD 18
,
CD 10
,
55 AA
, а затем идут характерные текстовые сообщения:
Invalid partition table
,
Error loading operating system
,
Missing operating system
(см. рис. 5.4). Если загрузчик поврежден, но сигнатура
55 AA
цела, то попытка загрузки с такого диска обернется неизменным зависанием.
Восстановить искореженный первичный загрузчик можно с помощью утилиты FDISK.EXE, запущенной с ключом
/MBR
, записывающей в главную загрузочную запись первого диска стандартный код первичного загрузчика (master boot code). Недокументированный ключ
/CMBR
, появившийся в MS-DOS 7.0, позволяет выбирать любой из подключенных дисков. В Windows 2000 и более новых версиях этого же результата можно добиться, загрузив консоль восстановления и дав команду
FIXMBR
.
Внимание!
Если вы использовали нестандартный загрузчик (например, LILO), то после перезаписи MBR сможете загружаться только с основного раздела, а для запуска операционных систем из других разделов вам придется переустановить свой мультизагрузочный менеджер. Кстати говоря, такой менеджер можно написать и самостоятельно. При наличии HIEW, а еще лучше — транслятора ассемблера — работа не займет и получаса.
Как уже говорилось, некоторые загрузчики изменяют схему трансляции адресов жесткого диска, поэтому со штатным загрузчиком такой диск окажется неработоспособен. Попробуйте переустановить загрузчик с дистрибутивных дисков — быть может, это поможет. В противном случае ничего не остается, как писать свой собственный загрузчик, определять текущую геометрию диска и соответствующим образом транслировать секторные адреса. Это — довольно сложная задача, требующая серьезной подготовки, и здесь ее лучше не обсуждать.