Краткие теоретические сведения о структуре и порядке организации дисковой памяти (FAT) в операционной системе MS DOS, страница 2

Таким образом видно, что координаты первого и последнего секторов раздела более информацонноемки и самодостаточны, нежели последние два элемента записи таблицы разделов.

Если бы информация о первом расширенном разделе DOS, следующим за первичным разделом, была утеряна, то ее можно было бы полностью восстановить на основании первой записи таблицы разделов и информации, хранящейся в BIOS. Это истинно в том случае, когда расширенный раздел DOS - единственный. Так, очевидно, что расширенный раздел начинается со стороны 0, сектора 1 и цилиндра с номером, на 1

большим, чем номер цилиндра конца первого раздела. Это следует из того факта, что разделы DOS содержат целые количества цилиндров. Информация из BIOS (количество цилиндров) нужна для получения адреса последнего сектора раздела. Количество секторов от начала раздела DOS до начала второго раздела можно получить, прибавив соответствующую характеристику первого раздела к числу секторов в первом разделе. Число секторов второго раздела легко получить, зная общее число секторов на диске.

Для восстановления первой записи по имеющийся второй даже не потребуется заглядывать в BIOS.

Ее восстановление по сохранившейся таблице разделов первичного раздела DOS не вызовет особых трудностей, надо лишь учесть, что начинается раздел со стороны 1, а сторона 0 (1 дорожка, т.е. 63 сектора) зарезервированы.

Boot Record

Загрузочный сектор дискеты или раздела фиксированного диска в системе DOS главным образом содержат в себе небольшую программу на машинном языке, которая начинает загрузку DOS в память. Чтобы выполнить эту задачу, ROM BIOS проверяет, является ли диск загрузочным, и если это так, то соответствующим образом продолжает процесс.

Первая команда программы загрузки: JMP - переход на адрес, с которого идет продолжение программы. При всех форматах дисков (за исключением дискет, форматированных на восемь секторов на дорожке) в загрузочном секторе содержатся некоторые ключевые параметры, которые начинаются с 11-го байта. Эти параметры являются частью блока параметров BIOS, который DOS использует для управления любым дисковым устройством. Ниже указан формат блока параметров BIOS:

Смещение   Длина             Описание

03H     8 Байтов    Идентификатор системы

0BH     1 Слово     Число байтов в секторе

0DH     1 Байт      Число секторов в кластере

0EH     1 Слово     Число секторов в зарезервированной области

10H     1 Байт      Число копий таблицы FAT

11H     1 Слово     Число записей в корневом каталоге

13H     1 Слово     Общее число секторов

15H     1 Байт      Описатель накопителя системы DOS

16H     1 Слово     Число секторов в таблице FAT

18H     1 Слово     Число секторов на дорожке

1AH     1 Слово     Число головок (сторон)

1CH     1 Слово     Число скрытых секторов

Блоки параметров BIOS для первого и второго логических дисков(т.е. С и D):

C:

D:

Легко восстановимыми являются значения атрибутов Байт/сектор

(в DOS - 512), зарезервировано секторов в начале (обычно 1), копий FAT (обычно

2), байт дескриптора носителя (зависит от типа диска, загрузочная запись которого рассматривается), секторов/дорожку (можно узнать в BIOS), сторон (также), скрытых секторов (обычно равно числу секторов на дорожку).

FAT

Таблица размещения файлов (File Allocation Table - FAT) является в системе DOS

картой использования пространства в области файлов на диске.

Для большинства форматов дисков DOS поддерживает две копии FAT на тот случай, если одна из них будет повреждена или станет нечитабельной.

Организация FAT проста: для каждого кластера из файловой области в FAT имеется одна запись. Запись в FAT может содержать любое из значений, перечисленных ниже:

12-битовое значение   16-битовое значение          Примечание

0                      0              Неиспользуемый кластер

FFO-FF6H              FFFO-FFF6H         Зарезервированный кластер

FF7H                   FFF7H           Дефектный кластер