Первый сектор на жестком диске, используемом в обычном PC совместимом ПК, доступный в пользовательском диапазоне (LBA – 0) используется для хранения главной загрузочной записи (MBR – Master Boot Record) и таблицы разделов. Главная загрузочная запись – это исполняемый код, которому передается управление из BIOS, в задачи которого входит проанализировать таблицу разделов, выбрать активный раздел, произвести загрузку его загрузочного сектора, насколько возможно произвести его проверку на корректность и передать управление коду, содержащемуся там, либо выдать сообщение об ошибке.
Таблица разделов содержит в себе записи, описывающие границы разделов, созданных на жестком диске, тип файловой системы и статус активности. Максимально возможное количество записей – 4, но данное ограничение легко обходится посредством использования записей о дополнительных таблицах разделов.
Смещение | Длина(байт) | Описание |
0х0 | - | Код загрузчика, на который передается управление из BIOS. Размер кода загрузчика различен в зависимости от ОС, записавшей его |
0x1BE | 16 | Первая запись для описания раздела |
0x1BE | 1 | признак активности раздела значение 0х80 – активен, 0х0 – неактивен |
0x1BF | 3 | начало раздела в CHS (устарело) |
0x1C2 | 1 | тип файловой системы (0х07 – NTFS, 0x0B – FAT32, 0x04 FAT16, 0X0F дополнительная таблица разделов) |
0x1C3 | 3 | окончание раздела в CHS (устарело) |
0x1C6 | 4 | смещение до начала раздела (в секторах) |
0x1CA | 4 | размер раздела (в секторах) |
0x1CE | 16 | Вторая запись для описания раздела |
0x1DE | 16 | Третья запись для описания раздела |
0x1EE | 16 | Четвертая запись для описания раздела |
0x1FE | 2 | Сигнатура 0x55 0xAA (признак MBR, при ее отсутствии BIOS системной платы не передаст управление коду загрузчика ОС и выведет соответствующее сообщение об ошибке) |
Нередки случаи, когда в результате действия вредоносного ПО, аппаратных и программных сбоев, ошибок пользователя содержимое таблицы разделов оказывается испорченным и, соответственно, пользователь сталкивается с ситуацией, что ОС не загружается, а при подключении данного жесткого диска к другому ПК не отображается ни один раздел, и в оснастке дисков все место числится свободным и неразмеченным.
В этих случаях рекомендуется воспользоваться дисковым редактором и проанализировать, что именно записано в таблице разделов. Если вместо кода загрузчика и таблицы разделов присутствуют некие иные данные, то рекомендованная операция – это очистка LBA 0. Далее произвести поиск загрузочных секторов разделов. При нахождении первого раздела проанализировать содержимое загрузочного сектора и вписать в первую запись таблицы тип файловой системы, начало раздела (номер сектора, где обнаружен загрузочный сектор раздела) и длину раздела (извлечь из загрузочного сектора). Далее к номеру сектора, от которого начинается первый раздел, прибавляем его длину и получаем номер сектора, на котором заканчивается раздел. С этого места продолжаем поиски дополнительной таблицы разделов, либо загрузочного сектора следующего раздела. Для раздела, содержащего ОС, обязательно ставим флаг активности (0х80).
Для того, чтобы описанные Вами разделы могли быть подключены в ОС, следует обязательно прописать маркер таблицы разделов по смещению 0x1FE (0x55, 0xAA).
Для того, чтобы можно было загрузить ранее установленную ОС Windows (2000, XP, Server 2003 и т.п.) Вам необходимо взять установочный диск с дистрибутивом ОС и загрузить консоль восстановления, из которой выполнить команду FIXMBR (которая заново запишет оригинальную MBR для установленной у Вас ОС).
Павел Янчарский
Перепечатка материалов разрешена только с указанием активной ссылки на оригинал статьи