Осторожно компьютерные вирусы

       

Формат таблицы FAT


Остановимся подробнее на формате таблицы FAT.

Таблица FAT может иметь 12- или 16-разрядный формат. При этом в таблице для хранения информации об одном кластере диска используется, соответственно, 12 или 16 бит.

Первый из этих двух форматов (12-разрядный) применяется для дискет с небольшим количеством секторов. При этом вся таблица размещения файлов помещается в одном секторе. 

Если размер диска слишком большой, для представления всех кластеров двенадцати разрядов будет недостаточно. В этом случае используется 16-разрядный формат FAT. При этом операционная система MS-DOS может работать с диском, который имеет размер более 32 Мбайт. Поэтому для жестких дисков используется именно 16-разрядный формат таблицы FAT.

Как узнать формат FAT?

Проще всего прочитать его в текстовой строке, расположенной в загрузочном секторе со смещением 36h. При форматном отображении содержимого загрузочного сектора тип таблицы FAT отображается в строке File System ID (рис. 6.18).

Кроме того, если разделы жесткого диска создавались программой FDISK.EXE, формат FAT можно определить, анализируя содержимое поля кода системы соответствующего элемента таблицы разделов, расположенной в главной загрузочной записи MBR. Если это поле содержит значение 1, используется 12-разрядный формат, если 4, то 16-разрядный.

Первый элемент таблицы FAT имеет особый формат.

Самый первый байт таблицы FAT называется "Описатель среды" (Media Descriptor). Он имеет такое же значение, как и байт-описатель среды, загрузочного сектора логического диска.

Следующие 5 байт для 12-разрядного формата или 7 байт для 16-разрядного формата всегда содержат значение 0FFh.

Вся остальная часть таблицы FAT состоит из 12- или 16-разрядных ячеек. Каждая ячейка соответствует одному кластеру диска. Эти ячейки для разных форматов таблицы FAT могут содержать следующие значения:



FAT12

FAT16

Описание

000h

0000h

Свободный кластер

0FF0h - 0FF6h

0FFF0h - 0FFF6h

Зарезервированный кластер

0FF7h

0FFF7h

Плохой кластер

0FF8h - 0FFFh

0FFF8h - 0FFFFh

Последний кластер в списке

002h - 0FEFh

0002h - 0FFEFh

Номер следующего кластера в списке



Содержание раздела