Файловая система NTFS

В отличие от разделов FAT все пространство тома NTFS представляет собой либо файл, либо часть файла. Основной структурой тома является главная таблица файлов (Master File Table). Каждая запись MFT имеет фиксированную длину, зависящую от объема диска 1, 2 или 4 Кбайт.

Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT. Весь том состоит из последовательности кластеров, что отличает эту файловую систему от рассмотренных ранее, где на кластеры делилась только область данных. Порядковый номер в томе NTFS называется логическим номером кластера (Logical Cluster Number). Файл NTFS также состоит из последовательности кластеров, при этом порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number). Базовая единица распределения дискового пространства для файловой системы NTFS – непрерывная область кластеров, называемая отрезком. В качестве адреса отрезка NTFS использует логический номер его первого кластера, а также количество кластеров в отрезке. Для хранения номера кластера в NTFS используются 64 разрядные указатели, что дает возможность поддерживать тома и файлы, размером до кластеров. Структура тома NTFS показана на Рисунок 5. Далее располагается первый отрезок MFT, содержащий 16 стандартных, создаваемых при форматировании записей о системных файлах NTFS. В NTFS файл целиком размещается в записи таблицы MFT, если это позволяет сделать его размер. В том же случае, когда размер файла больше размера записи MFT, в запись помещаются только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке тома (или нескольких отрезках). Часть файла, размещаемая в записи MFT, называется резидентной частью, а остальные части нерезидентными. Адресная информация об отрезках, содержащих нерезидентные части файла, размещается в атрибутах резидентной части. Нулевая запись MFT содержит описание самой MFT, в том числе и такой ее важный атрибут, как адреса всех ее отрезков.

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

Каждый атрибут файла NTFS состоит из полей: тип атрибута, длина атрибута, значение атрибута и, возможно имя атрибута. Тип атрибута, длина атрибута и имя образуют заголовок атрибута. Имеется системный набор атрибутов, определяемых структурой тома NTFS. Могут также применяться атрибуты, определяемые пользователем.

Системный набор атрибутов включает следующие атрибуты:

§ Attribute List (список атрибутов)- список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где расположен каждый атрибут; этот редко используемый атрибут нужен только в том случае, если атрибуты файла не умещаются в основной записи и занимают дополнительные записи MFT;

§ File Name (имя файла) – этот атрибут содержит длинное имя файла в формате Unicode, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа File Name; этот атрибут всегда должен быть резидентным;

§ MS-DOS Name (имя MS-DOS) – этот атрибут содержит имя файла в формате 8.3;

§ Version (версия) – атрибут содержит номер последней версии файла;

§ Security Descriptor (дескриптор безопасности) – этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет какого рода операции над этим файлом нужно регистрировать;

§ Volume Version (версия тома) – версия тома, используется только в системных файлах тома;

§ Volume Name (имя тома) – имя тома;

§ Data (данные) – содержит обычные данные файла;

§ MFT bitmap (битовая карта MFT) – этот атрибут содержит карту использования блоков на томе;

§ Index Root (корень индекса) – корень B-дерева, используемого для поиска файлов в каталоге;

§ Index Allocation (размещение индекса) – нерезидентные части индексного списка B-дерева;

§ Standard Information (стандартная информация) – этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо из других атрибутов файла, например, время создания файла, время обновления и другие.

Рисунок 5 Структура тома NTFS

 

 

Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень большие и сверхбольшие.

 

Небольшие файлы (small). Если файл имеет небольшой размер, то он может целиком располагаться внутри одной записи MFT, имеющей, например размер 2Кбайт. Небольшие файлы NTFS состоят по крайней мере из следующих атрибутов:

§ стандартная информация (SI - standard information);

§ имя файла (FN – file name);

§ данные (Data);

§ дескриптор безопасности (SD – security descriptor).

 

Большие файлы (large). Если данные файла не помещаются в одну запись MFT, то этот факт отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, то есть находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию (LCN, VCN, k) каждого отрезка данных.

 

Рисунок 6 Большой файл

 

Очень большие файлы (huge). Если файл настолько велик, что его атрибут данных, хранящий адреса нерезидентных отрезков данных, не помещается в одной записи, то этот атрибут помещается в другую запись MFT, а ссылка на такой атрибут помещается в основную запись файла. Эта ссылка содержится в атрибуте Attribute List. Сам атрибут данных по-прежнему содержит адреса нерезидентных отрезков данных.

Сверхбольшие файлы (extremely huge). Для сверхбольших файлов в атрибуте Attribute List можно указать несколько атрибутов, расположенных в дополнительных записях MFT. Кроме того можно использовать двойную косвенную адресацию, когда нерезидентный атрибут будет ссылаться на другие нерезидентные атрибуты, поэтому в NTFS не может быть атрибутов слишком большой для системы длины.

 

Ограничения NTFS:

§ Минимальный размер тома составляет (фактически) приблизительно 10 Мбайт.

§ На практике рекомендуется создавать тома, размеры которых не превышают 2 Тб.

§ Windows не позволяет форматировать дискеты в NTFS.

§ Теоретически размер файла может составлять 16 эксабайт.