Формат загрузочной записи
Сначала приведем формат загрузочной записи для версий MS-DOS, более ранних, чем 4.0.
Смещение | Размер | Содержимое |
0 | 3 | Команда JMP xxxx - ближний переход на программу начальной загрузки |
3 | 8 | Название фирмы-изготовителя операционной системы и версия, например: "IBM 4.0" |
11 | 13 | Блок параметров BIOS (BPB ) |
24 | 2 | Количество секторов на дорожке |
26 | 2 | Количество головок (поверхностей диска) |
28 | 2 | Количество скрытых секторов, эти секторы могут использоваться для схемы разделения физического диска на разделы и логические диски |
В самом начале загрузочного сектора располагается команда внутрисегментного перехода JMP. Она нужна для обхода форматированной зоны сектора и передачи управления загрузочной программе, располагающейся со смещением 30.
Название фирмы-изготовителя не используется операционной системой.
Со смещением 11 располагается BPB - блок параметров BIOS , о котором мы уже говорили в разделах книги, посвященных драйверам. Этот блок содержит некоторые характеристики логического диска, о которых мы будем говорить немного позже. Он активно используется дисковыми драйверами. Для MS-DOS версий до 4.0 блок BPB имеет следующий формат:
Смещение, байт | Размер, байт | Имя поля | Описание |
0 | 2 | sect_siz | Количество байт в одном секторе диска |
2 | 1 | clustsiz | Количество секторов в одном кластере |
3 | 2 | res_sect | Количество зарезервированных секторов |
5 | 1 | fat_cnt | Количество таблиц FAT |
6 | 2 | root_siz | Максимальное количество дескрипторов файлов в корневом каталоге диска |
8 | 2 | tot_sect | Общее количество секторов на носителе данных (в разделе MS-DOS) |
10 | 1 | media | Байт-описатель среды носителя данных |
11 | 2 | fat_size | Количество секторов, занимаемых одной копией FAT |
Поля загрузочного сектора со смещениями 24 и 26 содержат, соответственно, количество секторов на дорожке и количество головок в НМД. Поле со смещением 28 содержит количество "скрытых" секторов, которые не принадлежат ни одному логическому диску. Эти секторы могут содержать основную или вторичные таблицы разделов диска.
Для современных версий MS- DOS загрузочный сектор имеет другой формат:
Смещение | Размер | Содержимое |
0 | 3 | Команда JMP xxxx - ближний переход на программу начальной загрузки |
3 | 8 | Название фирмы-изготовителя операционной системы и версия |
11 | 25 | Extended BPB - расширенный блок параметров BIOS |
36 | 1 | Физический номер устройства (0 -НГМД, 80h -НМД) |
37 | 1 | Зарезервировано |
38 | 1 | Символ ')' - признак расширенной загрузочной записи |
39 | 4 | Серийный номер диска (Volume Serial Number), создается во время форматирования диска |
43 | 11 | Метка диска (Volume Label) |
54 | 8 | Зарезервировано, обычно содержит запись типа 'FAT12 ', которая идентифицирует формат таблицы размещения файлов FAT |
Поле со смещением 38 всегда содержит символ ')'. Этот символ означает, что используется формат расширенной загрузочной записи.
Серийный номер диска формируется во время форматирования диска на основе даты и времени форматирования. Это поле может быть использовано для определения факта замены дискеты.
Метка диска формируется при форматировании и может быть изменена командой LABEL операционной системы MS-DOS. Одновременно метка диска помещается в корневой каталог.