Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 6004.doc
Скачиваний:
21
Добавлен:
30.04.2022
Размер:
1.29 Mб
Скачать

4.1.Структура дискового тома. Таблица разделов

Жесткий диск разбивается на независимые логические части, называемые разделами. Один из разделов используется для загрузки ОС (т.н. активный раздел). Информация о делении диска заносится в таблицу разделов (Partition Table), которая содержится в основной записи начальной загрузки (Master Boot Record). Программа началь- ной загрузки по Partition Table определяет положение активного раздела, читает один сектор активного раздела и загружает систе- му.

Самый первый сектор жесткого диска (поверхность 0, цилиндр 0, сектор 1) содержит главную запись загрузки (Master Boot Re- cord), которая помещается в память по адресу 0000:7C00Н и испол- няется BIOS во время начальной загрузки системы. Последняя часть этого сектора содержит таблицу разделов (Partition Table), состоящую из 4 элементов длиной по 16 байт (табл. 1,2).

0 поверхность

1 сектор 0 цилиндра

Главная запись

начальной загрузки

Master Boot

Record

Запись

начальной загрузки

Boot Record

1 копия FAT

Первый раздел (C:)

2 копия FAT

Корневой директорий

Область данных

Запись

начальной загрузки

Boot Record

1 копия FAT

Второй раздел (D:)

2 копия FAT

Корневой директорий

Область данных

……………………

Запись

начальной загрузки

Boot Record

1 копия FAT

Последний раздел

2 копия FAT

Корневой директорий

Область данных

Рис.20. Физическая структура диска

При загрузке BIOS выполняет код Master Boot Record. Этот код анализирует Partition Table для определения активного (т.е. содержащего операционную систему) раздела. Загрузочный сектор активного раздела читается в память и выполняется.

*) Для других операционных систем определены иные коды. Тип 5 позволяет организовать более 4 разделов на диске. **) Абсолютный сектор 0 эквивалентен заданию цилиндра 0, поверх- ности 0 и сектора 1. Номера секторов увеличиваются сначала вдоль дорожки, затем по поверхности и, наконец, по цилиндрам. Номер сектора может быть рассчитан по формуле relSec = (CylNo * SecsPerTrack * Нeads) + (НeadNo * SecsPerTrack) + (SecNo - 1), где CylNo - номер цилиндра; SecsPerTrack - число секторов на до- рожке; Нeads - число поверхностей; НeadNo - номер поверхности; SecsPerTrack - число секторов на дорожке; SecNo - номер сектора на дорожке (отсчет от 1).

Когда поле bFileSysCode содержит 05Н, то раздел представляется самостоятельным физическим устройством. Код Master Boot читает таблицу, чтобы получить информацию о дополнительных разделах. Каждый расширенный раздел может в свою очередь определить до 4 DOS-разделов. Например, жесткий диск может содержать 3 не- DOS-раздела и 20 DOS-разделов. Вторичный Master Boot сектор включает свое собственное множество таблиц разделов, называемое расширенной записью разделов. Каждая расширенная запись разделов имеет не более двух элементов. Один будет содержать описатель раздела, определяющего расположение и размер DOS-раздела. Он имеет значение поля bFileSysCode, равное 1, 4 или 6. Второй (если присутствует) будет иметь bFileSysCode, равное 5, указывающее на расположение следующей расширенной записи разделов.

Сектор с расширенной записью разделов похож на таблицу разделов, однако, во-первых, описываемые логические диски не загружаемые, т.е. сектор не должен содержать загрузочный код Master Boot Record. Он должен только лишь содержать данные, начинающиеся со смещения 1BEН в секторе. Во-вторых, элементы не могут идентифицировать неDOS разделы. В-третьих, таблица может содержать один или два элемента. Один элемент определяет типы 1, 4 или 6. Второй может быть индикатором расширенной таблицы типа 5. Вы можете определить только один том в таблице. В-четвертых, при bFileSysCode, равном 1, 4 или 6,значения начальных/конечных Нd/Sec/Cyl задаются относительно расширенного загрузочного сектора, а при bFile-SysCode, равном 5, значения начальных/конечных Нd/Sec/Cyl абсолютны, т.е. отсчитываются от начала физического диска.

Гибкий диск отличается от жесткого отсутствием главной записи начальной загрузки и состоит из одного раздела.