Структура корневого каталога.
Корневой каталог содержит фиксированное количество записей, каждая запись - 32б, при этом структура каталога такова:
1. Имя файла – 8б.
2. Расширение (спецификация файла)-3б.
3. Атрибуты файла - 1б. 1б распределяется побитно:
0 бит - файл открыт только для чтения, нельзя записывать и удалять (если в нулевом бите стоит единица),
1 бит – скрытый файл,
2 бит – системный файл,
3 бит – метка Тома (11 символов),
4 бит – подкаталог,
5 бит – архивный,
6,7 – резерв.
4. Резерв -10байт, он используется для создания расширенных элементов FAT, которые используются для написания длинных имен файлов (и на национальных языках).
5. Время создания файла – 2 б.
6. Дата -2б.
7. Номер первого кластера в FAT, где располагается содержимое файла.
8. Размер файла в байтах – 4б.
Первый элемент FAT – ссылка на номер кластера, где файл начинается, следующий элемент FAT – ссылка на номер кластера, где файл продолжается и т.д., как только встретили FFFF, то это значит, что файл больше в кластерах не располагается.
Замечание 1: первый байт в имени файла может содержать код «00», это значит, что эта точка входа еще ни разу не использовалась или если первый байт содержит Е5, то это значит, что данный файл был удален.
Замечание 2: если первый байт имени файла 2Е, то это запись текущего подкаталога.
Если оказалось, что встретилось 2Е2Е, то в данном случае это является записью родительского каталога, при этом если брать поле первого кластера, то это начало родительского каталога. Если это начало оказалось «0», то это корневой каталог.
Время в корневом каталоге, которое задается двумя байтами, при описании имеет структуру:
![]() |
2б, которые отводится под дату, используются следующим образом:
![]() |
Область файлов.
После завершения корневого каталога располагается область файлов, под нее зарезервировано хотя бы два сектора, поэтому цепочка кластеров начинается со второго кластера, который может содержать какой-либо файл.
Если какой-либо кластер является первым кластером какого-либо каталога или подкаталога и длина его равна нулю, и это признак того, что это действительно каталог.
Самые первые байты используются специальным образом. Они формируются с помощью программы FDISK и задают разделы жесткого диска.
У каждого раздела есть свой дескриптор – описатель раздела.
В дескрипторе описывается все, что касается данного раздела, а в каждом из разделов лежит информация о том, где он начинается и где заканчивается.
В каждом из разделов может лежать своя собственная файловая система (FAT 16, либо FAT32, либо NTFS).
Первой сектор содержит следующую информацию: байты с первого по 1BD не используется.
1BEH - 1СВР – дескриптор первого раздела.
1CEH – 1DDH – дескриптор второго раздела.
1DE – 1ED – дескриптор третьего раздела.
1EEH – 1АВР – дескриптор четвертого раздела.
Каждый из разделов может иметь свою ОС и файловую систему. Обычно на жестком диске лежит одна ОС, но мы можем установить в каждом разделе свою ОС, например:
1 раздел: FAT 32, WIN98
2 раздел: FAT32, WIN2000
3 раздел: NTFS, XP.
Каждый дескриптор раздела имеет следующую структуру:
00 – флаг активности раздела. Он может быть либо 80H – раздел активный,
0H – не активный.
01 – содержит номер начальной головки (откуда начинается раздел).
02-03 – номер начального цилиндра, сектора.
04 – тип раздела.
Если в данном разделе лежит единица, то это значит, что используется FAT12 (используется для дискет маленького размера).
Если 4 – FAT16, 5 – расширенный раздел (данный раздел расширяется на следующий логический диск), 6 – 32 Мб.
05 – номер конечной головки.
06-07 – номер конечного цилиндра сектора.
08-OBH – номер начального сектора раздела относительно начала диска.
OCH-OFH – размер раздела в секторах.