Восстановление данных. Практическое руководство
Таблица 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 , отформатированный для FAT32 (Legacy FT volume using BIOSINT 13h
extensions formatted with FAT32)INT 13h
Техника восстановления главной загрузочной записи
Существует множество утилит для автоматического восстановления первичного загрузчика и таблицы разделов, к числу которых относятся, например, 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 и отключите все загрузочные устройства, оставив активным только диск
(и не забудьте извлечь из него дискету). А теперь перезагрузитесь и запомните, какое сообщение появится на экране. Это и будет "ругательством" BIOS.A:
Восстановить сигнатуру
можно в любом дисковом редакторе. Когда будете это делать, убедитесь, что в начале диска присутствует осмысленный код первичного загрузчика (master boot code).55h AAh
РекомендацияЕсли вы испытываете затруднение с дизассемблированием в уме, воспользуйтесь 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
(см. рис. 5.4). Если загрузчик поврежден, но сигнатураMissing operating system
цела, то попытка загрузки с такого диска обернется неизменным зависанием.55 AA
Восстановить искореженный первичный загрузчик можно с помощью утилиты FDISK.EXE, запущенной с ключом
, записывающей в главную загрузочную запись первого диска стандартный код первичного загрузчика (master boot code). Недокументированный ключ/MBR
, появившийся в MS-DOS 7.0, позволяет выбирать любой из подключенных дисков. В Windows 2000 и более новых версиях этого же результата можно добиться, загрузив консоль восстановления и дав команду/CMBR
.FIXMBR
Внимание!Если вы использовали нестандартный загрузчик (например, LILO), то после перезаписи MBR сможете загружаться только с основного раздела, а для запуска операционных систем из других разделов вам придется переустановить свой мультизагрузочный менеджер. Кстати говоря, такой менеджер можно написать и самостоятельно. При наличии HIEW, а еще лучше — транслятора ассемблера — работа не займет и получаса.
Как уже говорилось, некоторые загрузчики изменяют схему трансляции адресов жесткого диска, поэтому со штатным загрузчиком такой диск окажется неработоспособен. Попробуйте переустановить загрузчик с дистрибутивных дисков — быть может, это поможет. В противном случае ничего не остается, как писать свой собственный загрузчик, определять текущую геометрию диска и соответствующим образом транслировать секторные адреса. Это — довольно сложная задача, требующая серьезной подготовки, и здесь ее лучше не обсуждать.