Структура файлов NTFS

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

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

Имеется системный набор атрибутов, определяемых структурой тома NTFS. Сис­темные атрибуты имеют фиксированные имена и коды их типа, а также опреде­ленный формат. Могут применяться также атрибуты, определяемые пользова­телями. Их имена, типы и форматы задаются исключительно пользователем. Атрибуты файлов упорядочены по убыванию кода атрибута, причем атрибут од­ного и того же типа может повторяться несколько раз. Существуют два способа хранения атрибутов файла — резидентное хранение в записях таблицы MFT и нерезидентное хранение вне ее, во внешних отрезках. Таким образом, резидент­ная часть файла состоит из резидентных атрибутов, а нерезидентная — из нере­зидентных атрибутов. Сортировка может осуществляться только по резидентным атрибутам.

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

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

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

3. MS-DOS Name (имя MS-DOS) — этот атрибут, содержит имя файла ;

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

5. Security Descriptor (дескриптор безопасности) — этот атрибут содержит ин­формацию о защите файла: список прав доступа ACL (права доступа к файлу рассматриваются ниже в разделе «Контроль доступа к файлам») и поле ауди­та, которое определяет, какого рода операции над этим файлом нужно регист­рировать;

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

7. Volume Name (имя тома) — имя тома;

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

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

10. Index Root (корень индекса) — корень В-дерева, используемого для поиска фай­лов в каталоге;

11. Q Index Allocation (размещение индекса) — нерезидентные части индексного списка В-дерева;

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

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

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

1. стандартная информация (SI — standard information);

2. имя файла (FN — file name);

3. данные (Data);

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

Из-за того что файл может иметь переменное количество атрибутов, а также из-за переменного размера атрибутов нельзя наверняка утверждать, что файл уме­стится внутри записи. Однако обычно файлы размером менее 1500 байт помеща­ются внутри записи MFT (размером 2 Кбайт).


Рис. 2 Небольшой файл NTFS

 

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

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


Рис.3 Большой файл

 


Рис. 4 Очень большой файл

 

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

 

 

Рис.5 Сверхбольшой файл.