Внутренняя организация NTFS на логическом томе. Метафайлы и их назначение. Структура главной таблицы файлов (МFТ)
Логически NTFS очень похожа на базу данных. Все пространство тома этой ФС представляет собой либо файл, либо часть файла. Самый главный файл на NTFS носит имя MFT (Master File Table - Общая Таблица Файлов). В нем в виде метафайлов (еще их называют метаданными) содержится вся служебная информация, необходимая для функционирования NTFS. Всего метафайлов 16. Эти файлы недоступны при работе в Windows, однако просмотреть их можно, загрузившись под другой операционной системой (например, BeOS), или используя специальные утилиты.
Файловая система NTFS использует следующие единицы дискового хранения: сектор, кластер (размер кластера в секторах является степень 2), том. Том – логический раздел диска, состоящий некоторого количества кластеров и используемый файловой системой для распределения дискового пространства. Том может занимать как весь диск, так и его часть или охватывать несколько дисков (RAID’s).
Размер кластера от 512 байт до 64 Кбайт. Стандартными считаются кластера 2 Кбайта или 4 Кбайта. Все дисковое пространство NTFS делится на две неравные части. Первые 1-2% диска – загрузочный сектор диска (размер до 16 физических секторов).
MFT (Master File Table) – специальный файл главной системы. Структура данных которого, позволяет определить место нахождения всех остальных файлов. Запись, каких либо данных в эту область невозможна. Далее идет область длиной в 1 Мбайт для системных файлов. MFT представляет собой централизованный каталог всех остальных файлов диска, в том числе и самого себя. MFT поделен га записи фиксированного размера в 1 Кбайт и каждая запись соответствует какому либо файлу.
Первые 16 файлов носят служебный характер и называются метафайлами, причем самый первый это MFT. Они хранятся в области системных файлов за MFT-зоной, так же как и копии первых 16 записей MFT. Метафайлы находятся в корневом каталоге тома, их имена начинаются с символа $.
№ | Имя метафайла | Назначение метафайла |
$MFT | Главная таблица файлов Master file Table, содержит полный список файлов NTFS | |
$MFTmirr | Копия главной таблицы файлов, размещенная посередине тома | |
$LogFile | Файл журнала файловых операций(Список транзакций, который используется для восстановления файловой системы после сбоев) | |
$Volume | Том (Служебная информация – имя тома, версия файловой системы NTFS и другая информация о томе) | |
$AttrDef | Таблица определения атрибутов (Таблица имен, номеров и описаний атрибутов) | |
$ | Индекс корневого каталога (Корневой каталог) | |
$Bitmap | Битовая карта кластеров (Разметка использованных кластеров тома) | |
$Boot | Адрес Загрузочного сектора раздела (если раздел загрузочный) | |
$BadClus | Файл плохих кластеров (Файл, содержащий список всех обнаруженных на томе плохих кластеров) | |
$Quota | Таблица квот. Файл, в котором записаны права пользователей на использование дискового пространства (начал работать лишь в Windows 2000 с системой NTFS 5.0) | |
$Upcase | Таблица преобразований регистра символов .(Файл – таблица соответствия заглавных и прописных букв в именах файлов. В NTFS имена файлов записываются в Unicode (что составляет 65тысяч различных символов);используется для преобразования регистра символов для кодировки UniCode ) | |
11-15 | Зарезервированы для будущего использования |
Файл в томе с файловой системой NTFS идентифицируется файловой ссылкой (File Reference) которая представляется как 64 разрядное число. Файловая ссылка состоит из номера файла, который соответствует позиции его файловой записи и MFT и номера последовательности. Последний увеличивается всякий раз, когда данная позиция MFT используется повторно. Что позволяет файловой системе выполнить внутренние проверки целостности.
Каждый файл NTFS представлен с помощью атрибутов (поток) т.е. у него нет как таковых просто данных, а есть атрибуты. Один из атрибутов и есть данные файла. Таким образом, базовая сущность у файла только одна – номер в MFT, а все остальное атрибуты. Такой подход можно эффективно использовать. Например, файлу можно «прилепить» еще один атрибут или поток записав в него любые данные. В W2K, таким образом, записана информация об авторе содержание файлы. Атрибуты или потоки не видны стандартными средствами работы с файлами: наблюдаемый размер, размер основного потока, который содержит традиционные данные. Можно иметь файл нулевой длины при стирании которого, освободиться 1 Гбайт памяти. (На идей подмен потока основано написание вируса)
Таким образом, файл состоит из набора атрибутов (потока, данные, хранящиеся в файлах рассматриваются как атрибуты).
Сама таблица MFT рассматривается как файл, к которому применим метод размещения в томе в виде набора произвольно расположенных нескольких отрезков.
Некоторые системные файлы являются полностью резидентными, а некоторые имеют и нерезидентные части, которые располагаются после первого отрезка MFT.
После форматирования MFT состоит из одного отрезка, но после создания первого же несистемного файла для хранения его атрибутов требуется еще один отрезок, так как изначально непрерывная последовательность кластеров МFT уже завершена системными файлами.