Главная загрузочная запись и таблица разделов

We use cookies. Read the Privacy and Cookie Policy

Главная загрузочная запись и таблица разделов

В первом секторе на любом жестком диске находятся код простой программы (загрузчика) и последовательность информационных полей (таблица разделов). Вместе программа и поля называются главной загрузочной записью (Master Boot Record – MBR).

Главная загрузочная запись создается на новом диске программой FDISK. Управление дисками Windows при создании раздела производит запись в MBR. Все программы наподобие Partition Magic или Acronis Disk Director тоже создают и редактируют главную загрузочную запись.

Просмотреть содержимое секторов винчестера, в том числе первого, на котором находится главная загрузочная запись, можно многими HEX-редакторами. В редакторе Hexplorer есть отдельная команда меню Disk (Диск). При ее вызове появляется окно, где следует указать номер начального сектора и число секторов, которое программа должна прочитать. Существуют и специальные дисковые редакторы, например DiskEdit из пакета Norton Utilities или DiskExplorer for NTFS (http://www.runtime.org). Основное отличие дисковых редакторов от обычных бинарных редакторов – наличие широкого набора шаблонов просмотра данных (можно сразу интерпретировать их не только как текст, но и как загрузочный сектор либо один из элементов файловой системы) и защиты от непреднамеренной записи на диск.

MBR занимает ровно 512 байтов – один сектор. Структура этой записи представлена в табл. 2.1.

Таблица 2.1. Структура MBR

Четыре 16-байтных блока, каждый из которых описывает один раздел, образуют таблицу разделов – Partition Table. Максимальное количество разделов, которое может быть описано в MBR, – четыре. Каждый блок состоит из 10 полей (табл. 2.2).

Таблица 2.2. Поля таблицы разделов

Флаг активности указывает на то, что раздел активен. Из всех разделов на диске активным может быть лишь один. Код типа раздела – однобайтовый идентификатор. Если его значение 00h, то считается, что этого раздела не существует и его содержимое игнорируется. Любое ненулевое значение означает, что в указанном пространстве находится раздел определенного типа. Так, например, идентификатор 06h указывает на раздел, отформатированный в FAT16, 0Bh или 0Ch – на раздел FAT32, а 07h – на раздел NTFS.

Если на диске нужно создать больше четырех разделов, то следует использовать специальный тип раздела с кодом 05h – расширенный раздел (Extended Partition).

Расширенный раздел отличается от всех остальных типов. Он описывает не сам раздел, а область пространства накопителя, в которой описаны разделы. В том секторе, который прописан в MBR как сектор начала расширенного раздела, фактически содержится еще одна загрузочная запись – Extended Boot Record (EBR) (табл. 2.3). Кода загрузчика в ней нет, есть только таблица разделов и сигнатура.

Таблица 2.3. Структура EBR

Указатель на раздел описывает обычный раздел (Partition), как показано в табл. 2.2. Если обычный раздел занимает не все пространство, то в таблице разделов появляется второй элемент, который вновь описывает оставшееся пространство как Extended Partition, то есть указатель на следующий EBR. В секторе, на который ссылается эта запись, точно так же описывается один раздел, и, если осталось место, делается очередная запись об Extended Partition. Так продолжается до тех пор, пока пространство не будет разделено. Фактически все записи о расширенных разделах являются цепью (Extended Partition Chain), в которой от дискового пространства отрезаются кусочки, пока место не закончится. Ошибка в любом элементе этой цепи приведет к ее обрыву. Все разделы, записи о которых лежат после разрыва цепи, операционная система найти не сможет, а занимаемое этими расширенными разделами пространство она будет считать незанятым.

Данный текст является ознакомительным фрагментом.