В отличие от разделов FAT и s5/ufs все пространство тома NTFS представляет собой либо файл, либо часть файла. Основой структуры тома NTFS является главная таблица файлов (Master File Table, MFT), которая содержит по крайней мере одну запись для каждого файла тома, включая одну запись для самой себя (рис 5. 11). Каждая запись MFT имеет фиксированную длину, зависящую от объема диска, - 1,2 или 4 Кбайт. Для большинства дисков, используемых сегодня, размер записи MFT равен 2 Кбайт, который мы далее будем считать размером записи по умолчанию.
Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT. Этот способ идентификации файла близок к способу, используемому в файловых системах s5 и ufs, где файл однозначно идентифицируется номером его записи в области индексных дескрипторов.
В Windows NT логический раздел принято называть томом. Весь том NTFS состоит из последовательности кластеров, что отличает эту файловую систему от рассмотренных ранее, где на кластеры делилась только область данных. Порядковый номер кластера в томе NTFS называется логическим номером кластера (Logical Cluster Number, LCN). Файл NTFS также состоит из последовательности кластеров, при этом порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number, VCN).
Загрузочный блок
0
: MFT
Системный файл 1
Системный файл 2
:
Системный файл n
Копия MFT (первые три записи)
Файл n - 1
Копия загрузочного блока
MFT
Файл m
MFT
1'отрезок MFT
2' отрезок MFT
3' отрезок MFT
Рис. 5. 11. Структура тома NTFS
Базовая единица распределения дискового пространства для файловой системы NTFS - непрерывная область кластеров, называемая отрезком. В качестве адреса отрезка NTFS использует логический номер его первого кластера, а также количество кластеров в отрезке k, то есть пара (LCN, k). Таким образом, часть файла, помещенная в отрезок и начинающаяся с виртуального кластера VCN, характеризуется адресом, состоящим из трех чисел: (VCN, LCN, k).
Для хранения номера кластера в NTFS используются 64-разрядные указатели, что дает возможность поддерживать тома и файлы размером до 264 кластеров. При размере кластера в 4 Кбайт это позволяет использовать тома и файлы, состоящие из 64 миллиардов килобайт.
Загрузочный блок тома NTFS располагается в начале тома, а его ко-пия - в середине тома. Загрузочный блок содержит стандартный блок параметров BIOS, количество блоков в томе, а также начальный логический номер кластера основной копии MFT и зеркальную копию MFT.
Далее располагается первый отрезок MFT, содержащий 16 стандартных, создаваемых при форматировании, записей о системных файлах NTFS. Назначение этих файлов описано в табл. 1.
Таблица 1
№
Имя
Описание
$MFT
Сам MFT
$MFTmirr
Зеркальная копия первых трех записей MFT
$LogFile
Список транзакций, который используется для восстановления файловой системы после сбоев
$Volume
Имя тома, версия NTFS и другая информация о томе
$AttrDef
Таблица имен, номеров и описаний атрибутов
$.
Индекс корневого каталога
$Bitmap
Битовая карта кластеров
$Boot
Загрузочный сектор раздела
$BadClus
Файл плохих кластеров
$Quota
Таблица квот
$Upcase
Таблица преобразования регистра символов для кодировки Unicode