Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[3]

Таблица 24.3. Размер корневого каталога

Тип накопителя

Максимальное количество записей

Жесткий диск

512

Дисковод 1,44 Мбайт

224

Дисковод 2,88 Мбайт

448

Jaz и Zip

512

LS-120

512

корневого каталога фиксируется при создании логического диска и не может быть изменена в процессе работы. Размер корневого каталога различных накопителей приведен в табл. 24.3. В отличие от корневого каталога, подкаталог может хранить произвольное количество файлов и расширяться по мере необходимости.

Замечание

Одно из преимуществ FAT 32 заключается в том, что корневой каталог может располагаться в любом месте диска и содержать неограниченное количество записей.

Все каталоги имеют одинаковую структуру. Записи в этой базе данных сохраняют важную информацию о файлах, которая связана с информацией, хранящейся в FAT, посредством одного из полей записи - номера первого занимаемого файлом кластера на диске. Если бы все файлы на диске не превышали размеров одного кластера, потребности в FAT вообще бы не возникло. В FAT содержится информация о файле, отсутствующая в каталоге, - номера кластеров, в которых расположен весь файл.

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

Формат 32-байтовой записи в каталоге приведен в табл. 24.4.

Таблица 24.4. Формат каталога

Смещение

Hex

Dec

Длина поля

Описание

00h

0

8 байт

Имя файла

08h

8

3 байт

Расширение файла

0Bh

11

1 байт

Атрибуты файла

0Ch

12

10 байт

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

16h

22

Одно слово

Время создания

18h

24

Одно слово

Дата создания

1Ah

26

Одно слово

Начальный кластер

1Ch

28

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

Размер файла в байтах

Имена файлов и их расширения записаны с привязкой к левому краю и дополнены до максимальной длины пробелами, т. е. имя файла AL будет реально сохранено как AL...... ,


где точки обозначают пробелы. Первый байт имени файла также может обозначать его состояние (табл. 24.5).

Таблица 24.5. Байт состояния записи каталога (первый байт) Hex Состояние файла

00h Запись никогда не использовалась; ниже этой записи поиск не выполняется 05h Первый символ имени файла в настоящее время - E5h E5h Файл удален

2Eh Точка (.) показывает, что запись является каталогом. Если и второй байт - 2Eh, то поле начального кластера содержит номер кластера родительского каталога (0000h, если родительский каталог корневой)

В табл. 24.6 приводятся используемые в записях каталогов атрибуты файлов.

Таблица 24.6. Атрибуты файлов

Позиция бита в шестнадцатеричном формате

7 6

5

4

3

2

1

0

Значение

Описание

00

0

0

0

0

0

1

01h

Только для чтения

00

0

0

0

0

1

0

02h

Скрытый

00

0

0

0

1

0

0

04h

Системный

00

0

0

1

0

0

0

08h

Метка тома

00

0

1

0

0

0

0

10h

Подкаталог

00

1

0

0

0

0

0

20h

Архивный (измененный)

01

0

0

0

0

0

0

40h

Зарезервировано

1 0

0

0

0

0

0

0

80h

Зарезервировано

Примеры

0 0

0

0

0

1

1

1

07h

Системный, скрытый, только

для чтения

00

1

0

0

0

0

1

21h

Только для чтения, архивный

00

1

1

0

0

1

0

32h

Скрытый, подкаталог,

архивный

00

1

0

0

1

1

1

27h

Только для чтения, скрытый,

системный, архивный

Таблица размещения файлов

Таблица размещения файлов (FAT) содержит номера кластеров, в которых расположены файлы на диске. Каждому кластеру в FAT соответствует одно число. Секторы, не содержащие пользовательских данных (файлов), не отражены в FAT. К таким секторам относятся загрузочные секторы, таблицы размещения файлов и секторы корневого каталога.

В файловой системе FAT дисковое пространство разбивается не на секторы, а на группы секторов, которые называются кластерами (ячейками размещения). Кластер содержит один или несколько секторов. Размер кластера определяется при делении диска


на разделы с помощью программы FDISK и зависит от размера создаваемого раздела. Наименьший размер диска, который может занимать файл ненулевого размера, - один кластер. Каждый файл использует целое число кластеров. Например, если файл занимает на один байт больше размера кластера, то для его размещения на диске будет выделено два кластера.

FAT - это электронная таблица, управляющая распределением дискового пространства. Каждая ячейка этой таблицы связана с определенным кластером на диске. Число, содержащееся в этой ячейке, сообщает, использован ли данный кластер под какой-либо файл и, если использован, где находится следующий кластер этого файла. Каждая ячейка FAT хранит шестнадцатеричное значение длиной 12 или 16 бит. Шестнадцатиразрядные FAT более удобны в работе, так как значительно легче редактировать поля размером в два байта, чем в полтора. Чтобы самостоятельно отредактировать FAT, вы должны выполнить некоторые математические преобразования для получения номера кластера. К счастью, многие программы позволяют отредактировать FAT автоматически. В большинстве этих программ номера кластеров представлены в десятичном виде, наиболее удобном для пользователей. В табл. 24.7 приведены данные о каталоге и FAT (файл не фрагментирован).

Таблица 24.7. Записи о нефрагментированном файле в каталоге и FAT

Каталог

Имя

Начальный кластер

Размер

Usconst.txt

1000

4

FAT 16

Номер кластера

Значение

Назначение

00002

0

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

00999

0

Кластер доступен

01000

1001

Используется; ссылка на следующий кластер

01001

1002

Используется; ссылка на следующий кластер

01002

1003

Используется; ссылка на следующий кластер

01003

FFFFh

Конец файла

01004

0

Кластер доступен

01005

0

Кластер доступен

65526

0

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

В данном примере запись каталога указывает начальный кластер (1000), в котором размещается файл. В FAT кластеры с ненулевыми значениями используются, а специальное значение указывает дальнейшее расположение файла. В рассматриваемом примере в кластере 1000 указывается кластер 1001, в 1001 - 1002, в 1002 - 1003, а в 1003 записано значение FFFFh, т. е. на этом кластере файл заканчивается.

Рассмотрим пример с фрагментированным файлом. Пусть файл Usconst.txt записан, начиная с кластера номер 1000. А файл Pledge.txt начинается с кластера 1002. Таким образом, файл Usconst.txt становится фрагментированным. Описанная ситуация иллюстрируется данными в табл. 24.8.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12]