3.2. Загрузочный сектор

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).

 

      Загрузочный сектор - это  логический сектор диска с номером

 0. Он содержит программу начальной  загрузки ДОС с данного диска

 (если диск системный)  или  сообщение  об  отсутствии системы на

 диске, если  ее там нет. Начальная  область загрузочного сектора

 содержит, кроме того, блок информации о диске.

 

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

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

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

  +0       3    │ JMP │ **** │ Переход на начало загрузчика

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

  +3       8         OEM          │ Название фирмы и версия ДОС

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

  +0Bh     2    │ SectSize │ Количество байтов в секторе

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

  +0Dh     1    │ClustSize   Количество секторов в кластере

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

  +0Eh     2    │ ResSecs  │ Количество резервных секторов

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

  +10h     1    │FATCnt│     Количество FAT

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

  +11h     2    │ RootSize │ Макс. число элементов корневого каталога

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

  +13h     2    │ TotSecs  │ Общее число секторов на носителе

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

  +15h     1    │Media │     Описатель носителя

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

  +16h     2    │ FATSize  │ Количество секторов в одной FAT

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

  +18h     2    │ TrkSecs  │ Количество секторов на дорожке

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

  +1Ah     2    │ HeadCnt  │ Количество головок (поверхностей диска)

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

  +1Bh     2    │ HidnSec  │ Количество скрытых секторов (может

                └──────────┘ быть использовано при разбиении диска

                             на разделы)

  1Eh            Размер заголовка

 

      Примечания:

 

      1.  Поле  OEM  может  содержать  любые  8  байтов.  Оно  не

 используется ДОС.

 

      2. Часть загpузочного  сектоpа со смещениями  с 0Bh по  15h

 называется   блоком параметров  BIOS   (BPB). BPB  - это таблица

 паpаметpов диска, которая используется драйверами дисков.

 

      3.   Резервные  сектора   располагаются  между  загрузочным

 сектором и первой FAT.

 

      4.  Описатель  носителя  совпадает  с  первым  байтом FAT и

 описан ниже.


      5. Поля TrkSecs, HeadCut и  HidnSec не использовались в ДОС

 2.x, но стали обязательными в ДОС 3.x.

 

      6. Для  чтения загрузочного сектора  можно использовать Int

 25h с DX=0 или функции BIOS, точнее:

 

      - для  дискет: читать через  Int 13h головку  0, дорожку 0,

 сектор 1;

      - для жестких дисков: читать таблицу разделов для получения

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

 

      7. Информация, хранящаяся  в загрузочном секторе, позволяет

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

 содержащего.    Следующие    формулы    описывают   единственный

 документированный метод такого расчета.

 

      а)   Вычислить  размер   корневого  каталога   в  секторах,

 учитывая, что один элемент каталога состоит из 32 байтов:

 

         RootSectors = (RootSize * 32) / SectSize;

 

      б) Вычислить количество секторов, отведенных под FAT:

 

         FATSectors = (FATSize * FATCnt);

 

      в) Вычислить номер первого  сектора области данных (кластер

         номеp 2):

 

         DataStart = ResSecs + FATSectors + RootSectors;

 

      г)  Вычислить  логический  номер  первого  сектора в данном

         кластере:

 

         Sector = DataStart + ((Cluster-2) * ClustSize).

 

      Вместо   этой  цепочки   вычислений  можно  воспользоваться

 НЕДОКУМЕНТИРОВАННОЙ  фн 32h,  которая помимо  прочей информации,

 возвращает  номер начального  сектора области  данных (см. также

 следучщее примечание).

 

      8.  Нестандартные  жесткие  диски,  требующие  загружаемого

 драйвера,  не  имеют  таблицы   разделов  и  могут  содержать  в

 загрузочном  секторе  случайную  информацию.  В  этом  случае не

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

 диска.

 

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

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