Математика Курс лекций по информатике Машиностроительное черчение Решение задач по физике Теоретические основы электротехники Сопротивление материалов История искусства Ядерные реакторы
Сбои в персональных компьютерах Программа инициализации Управление файлами Программы низкоуровневого форматирования Загрузочные секторы разделов Корневой каталог Таблицы размещения  файлов (FAT) Потери дискового пространства

Загрузочные секторы томов DOS. Загрузочный сектор тома (VBS — Volume Boot Sector) — это первый сектор в любой области накопителя, определяемой как отдельный том или логический диск DOS. В частности, на дискете он является первым физически, поскольку в DOS не предусмотрено разбиение гибкого диска на разделы. На жестком диске VBS (их может быть несколько) располагаются в самом начале любой зоны диска, обозначенной как простой (не расширенный) раздел, или в начале каждого тома DOS.

Этот сектор похож на MBS в том отношении, что в нем также записана вспомогательная программа и специальные таблицы данных. Содержимое VBS гибкого диска загружается с помощью системной BIOS, а для жесткого диска эту операцию выполняет программа, хранящаяся в MBS. После этого управление системой передается программе, записанной в VBS; она выполняет ряд тестов, а затем пытается загрузить первый системный файл DOS — IBMBIO.COM. Уже запущенная и работающая DOS загрузочный сектор тома "не замечает" — он расположен вне области данных диска, в которой хранятся файлы.

Загрузочный сектор тома формируется с помощью команды FORMAT (при форматировании высокого уровня). VBS располагается в начале области каждого логического диска DOS, как в первичном, так и в расширенном разделах. Хотя в VBS всех логических дисков содержатся как программные коды, так и таблицы данных, выполняется только программа, записанная в загрузочном секторе DOS активного раздела. Остальные просто считываются в процессе запуска, и данные, содержащиеся в их таблицах, используются для определения параметров томов. Как только что было сказано, в загрузочном секторе тома содержится и программный код, и данные. Единственная таблица, имеющаяся в этом секторе, называется блоком параметров носителя (media parameter block) или блоком параметров диска (disk parameter block). Исходя из записанных в ней данных, DOS определяет объем тома и местоположение таких важных структур, как, например, FAT. Формат представления этих данных весьма критичен, и если они заданы некорректно, то все попытки загрузиться с диска или обратиться к нему могут оказаться безуспешными. В некоторых OEM-версиях DOS указанные данные представляются в другом формате, нежели тот, что принят фирмой IBM, поэтому диски (как гибкие, так и жесткие), отформатированные под управлением разных версий DOS, могут оказаться несовместимыми. В последних версиях DOS содержимое VBS или загрузочная запись DOS (DBR — DOS Boot Record) содержит больше подробностей. Поэтому, если вы подозреваете, что доступ к диску невозможен из-за неправильного формата DBR, то в этом случае вы можете с помощью программы типа DEBUG или Diskedit из Norton Utilities скопировать загрузочный сектор, сформированный более новой версией DOS, на диск, отформатированный под управлением более старой версии. Это позволит новой версии DOS прочесть старый диск и не помешает работе менее подробной старой версии. При работе под управлением различных версий DOS, разработанных одной и той же фирмой, таких проблем никогда не возникает — это иногда происходит лишь при использовании различных ОЕМ-версий.

В табл. 20.12 представлен формат загрузочной записи DOS (DBR).

Таблица 20.12. Формат загрузочной записи DOS (DBR)

Смещение Hex Dec

Длина поля

Описание

00h

0

3 байта

Инструкция перехода на программный код загрузки

03h

3

8 байт

Имя OEM и номер версии DOS (например, "IBM5.0")

OBh

11

1 слово

Количество байтов в секторе (обычно 512)

ODh

13

1 байт

Количество секторов в кластере (должно быть равно 2 в какой-либо степени)

OEh

14

1 слово

Зарезервированные секторы (загрузочные, обычно 1)

10h

16

1 байт

Количество копий FAT (обычно 2)

11h

17

1 слово

Максимальное количество элементов в корневом каталоге (обычно 512)

13h

19

1 слово

Общее количество секторов (если размер раздела < 32 М, в противном случае - 0)

15h

21

1 байт

Байт описания носителя (для жестких дисков - F8h)

16h

22

1 слово

Количество секторов в FAT

18h

24

1 слово

Количество секторов на дорожке

1Ah

26

1 слово

Количество головок (сторон)

1Ch

28

1 двойное

слово

Количество скрытых секторов (если размер раздела < 32 М, то 1 слово)

Для DOS 4.0 и

более версий,

противном случае 00п

20h

32

1 двойное слово

Общее количество секторов (если размер раздела > 32 М, в противном случае - 0)

24h

36

1 байт

Номер физического накопителя (00h - для гибких дисков, 80h - для жестких)

25h

37

1 байт

Зарезервирован (00h)

26h

38

1 байт

Сигнатура EBR (29h)

27h

39

1 двойное

слово

Серийный номер тома (32-разрядное случайное число)

28h

43

11 байт

Метка тома (если не задана, то "NO NAME")

36h

54

8 байт

Идентификатор файловой системы ("FAT12" или "FAT16")

Для всех

версий DOS

3Eh

62

450 байт

Программный код загрузки

1FEh

510

2 байта

Сигнатура (55AAh)

В графе "Смещение" указаны как шестнадцатиричные (Hex), так и десятичные значения (Dec) смещений соответствующих полей относительно начала сектора. — Слово — это два байта, прочитанные в обратном порядке; двойное слово—два слова, прочитанные в обратном порядке.

Запись на диски и в файлы в персональных компьютерах