3.5. Таблица разделов жесткого диска

Error message

Notice: Undefined index: add term path in hansel_get_breadcrumbs() (line 524 of /data/sites/msdosworld.ru/www/sites/all/modules/hansel/hansel.module).

 

     В отличие от дискет, жесткий диск разбивается на "разделы",

 т.   е.   нa  определенные  части,  которые  наделяются файловой

 структурой ДОС.   Самый первый  сектор жесткого  диска  содержит

 программу  головного  загрузчика,  который  загружается в память

 после тестирования ПЭВМ  при включении и  исполняется.  В  конце

 этого сектора размещена таблица разделов диска, описанная  ниже.

 Головной  загрузчик  считывает  ее  и  определяет,  какой раздел

 отмечен как  активный, т.   е.   подлежащий загрузке.   Затем он

 считывает загрузочный сектор этого раздела  (см. 3.2) и передает

 ему управление для загрузки ДОС.

 

      Таблица разделов размещается в секторе головного загрузчика

 со смещением 1BEh и имеет следующее строение:

 

 Смещение  Длина  Содержимое

 ────────────────────────────────────────────────────────────────

                  ┌─────────────────────┐

  +1BEh    10h    │ параметры 1 раздела │

                  ├─────────────────────┤

  +1CEh    10h    │ параметры 2 раздела │

                  ├─────────────────────┤

  +1DEh    10h    │ параметры 3 раздела │

                  ├─────────────────────┤

  +1EEh    10h    │ параметры 4 раздела │

                  ├───┬───┬─────────────┘

  +1FEh     2     │55h│AAh│   Роспись таблицы разделов

                  └───┴───┘

  200h   -  конец сектора

 

      Описание каждого раздела имеет следующую структуру:

 

 Смещение Длина Содержимое         Комментарий

 ────────────────────────────────────────────────────────────────

                ┌────┐

  +0        1   │Boot│      Флаг загрузки: 80h=активен, 0=нет

                ├────┤

  +1        1   │Head│      Номер головки первого сектора

                ├────┼────┐

  +2        2   │Sec | Cyl│ Сектор и цилиндр первого сектора

                ├────┼────┘

  +4        1   │Sys │      Код системы (см. ниже)

                ├────┤

  +5        1   │Head│      Номер головки последнего сектора

                ├────┼────┐

  +6        2   │Sec | Cyl│ Сектор и цилиндр последнего сектора

                ├────┴────┴─────────┐

  +8        4                      │ Относительный номер

                ├───────────────────┤ начального сектора

  +0Ch      4                      │ Размер раздела в секторах

                └───────────────────┘

  +10h          Конец параметров раздела

 

 

      Примечания:

 

      1.  Номера  сектора  и  цилиндра  состоят  из  6 и 10 битов

 соответственно:

 

  1 1 1 1 1 1

  5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

 ┌───────────────────┬───────────┐

        цилиндp       сектор  

 └───────────────────┴───────────┘

 

      Такой  способ  хранения  обеспечивает  головному загрузчику

 соответствие  с  функцией  02h  INT  13h,  считывающей сектора с

 жесткого диска.  Именно, если сектор загрузчика  считан с адреса

 "buffer", то команда

 

      cmp byte ptr buffer[1BEh], 80h

 

 проверит активность 1-го раздела, а

 

      mov   cx,buffer[1C0h]

 

 подготовит CX для обращения к INT  13h, считывающго загрузочный

 сектор 1-го раздела в ОЗУ.

 

      2. Код системы может принимать следующие значения:

 

      0 = неизвестная ОС (не ДОС);

      1 = ДОС, 12-битовые элементы FAT;

      4 = ДОС, 16-битовые элементы FAT;

      5 = расширенный раздел ДОС (только в ДОС 3.3, описан ниже).

 

      3. "Относительный номер сектора" рассчитывается по формуле:

 

 Rel_Sec = (Cyl * Cyl_Size * Heads_No) + (Head * Cyl_Size) +

           (Sec - 1),

 где

      Head,  Cyl и  Sec -   номер головки,  цилиндра и  сектора в

 цилиндре соответственно;

      Heads - количество головок накопителя;

      Cyl_Size - количество секторов на цилиндре.

 

      Таким  образом, относительный  сектор  0  - это  головка 0,

 цилиндр 0,  сектор 1, относительные  номера последующих секторов

 увеличиваются  сначала для  каждого сектора  головки, потом  для

 каждой головки и, наконец, для каждого цилиндра.

 

      4.   Разделы   начинаются   с   начала   четного  цилиндра.

 Исключением является  первый раздел, который  может начинаться с

 цилиндра  0,  головки  0,  сектора  2  (поскольку сектор 1 занят

 головным загрузчиком).

 

      5.  Когда  загрузочный  сектор  получает  управление, DS:SI

 указывает на таблицу параметров этого раздела.

 


      Содержимое    таблицы   разделов    можно   просмотреть   и

 модифицировать с помощью программы FDISK.

Вы находитесь в разделе: 

Добавить коментарий