Структура тома NTFS

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

Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в МFТ.

Весь том[2] NTFS состоит из последовательности кластеров, что отличает эту файловую систему от рассмотренных ранее, где на кластеры делилась только область данных. Порядковый номер кластера в томе NTFS называется логическим номером кластера(Logical Cluster Number, LCN). Файл NTFS также состоит из последовательности кластеров, при этом порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number, VCN).

Базовая единица распределения дискового пространства для файловой системы NTFS – непрерывная область кластеров, называемая отрезком. В качестве адреса отрезка NTFS использует логический номер его первого кластера, а также количество кластеров в отрезке, то есть пару (LCN, k). Таким образом, часть файла, помещенная в отрезок и начинающаяся с виртуального кластера VCN, характеризуется адресом, состоящим из трех чисел: (VCN, LCN, k).

Для хранения номера кластера в NTFS используются 64-разрядные указатели, что дает возможность поддерживать тома и файлы размером до 2 кластеров. При размере кластера в 4 кбайт это позволяет использовать тома и файлы, состоящие из 64 миллиардов килобайт.

Структура тома NTFS показана на рис. 13.1.

Все данные на томе NTFS хранятся в файлах, включая структуры данных, исполь­зуемые для поиска и считывания файлов, данные начального загрузчика и бито­вую карту, содержащую информацию о распределении пространства на томе (метаданные NTFS). Хранение всего в виде файлов облегчает ФС поиск и управ­ление данными, а доступ к каждому отдельному файлу может быть ограничен посредством дескриптора защиты (о нем пойдет речь дальше). Кроме того, в случае повреждения участка диска NTFS может переместить файлы метаданных, и информация на диске по-прежнему будет доступной.

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

Загрузочный блок тома NTFS располагается в начале тома, а его копия – в середине тома. Загрузочный блок содержит стандартный блок параметров BIOS, количество блоков в томе, а также начальный логический номер кластера основной копии МFТ и зеркальной копии МFТ.

Далее располагается первый отрезок МFТ, содержавший 16 стандартных, создаваемых при форматировании записей о системных файлах NTFS.

При первом обращении к тому NTFS должна смонтировать (mount) его, т.е. подготовить том к использованию.

 
 

Физический адрес MFT на диске получается при обращении к загрузочному сектору (или его копии, если загрузочный сектор поврежден). Первой записью в таблице является файловая запись для самой MFT. Вторая запись соответствует файлу, находящемуся в середине диска и содержа­щему копию первых 1б рядов MFT. Эта неполная копия MFT используется для поиска файлов метаданных в том случае, если часть файла MFT по какой-либо причине нельзя считать.

После того как файловая запись для MFT найдена, NTFS считывает инфор­мацию отображения VCN-LCN для ее атрибута данных, распаковывает эту ин­формацию и сохраняет ее в памяти. Данная информация говорит NTFS, где на дис­ке находятся отрезки, составляющие MFT. Затем NTFS распаковывает записи MFT еще для нескольких файлов метаданных и открывает эти файлы. Далее NTFS выпол­няет операцию восстановления ФС (описана далее) и, наконец, открывает ос­тавшиеся файлы метаданных. Теперь том готов к использованию.

В процессе работы NTFS записывает информацию в еще один важный файл метаданных — журнал транзакций (log file). В журнале транзакций ре­гистрируются все операции, влияющие на структуру тома, включая создание файла и любые команды, такие как Copy, изменяющие структуру каталогов. Журнал транзакций применяется для восстановления тома NTFS после сбоя системы.

Еще одна запись MFT зарезервирована для корневого каталога (известного так же, как «\»). Эта запись содержит индекс файлов и каталогов, хранящихся в корне структуры каталогов NTFS. Получив первый запрос на открытие некоторого файла, NTFS начинает поиск этого файла с файловой записи корневого каталога. После того как файл открыт, NTFS запоминает его файловую ссылку, чтобы при последующих операциях ввода-вывода обращаться к записи MFT этого файла напрямую.

Схема распределения пространства на томе хранится NTFS в файле битовой карты (bitmap file). Атрибут данных этого файла содержит битовую карту, каждый бит которой представляет один кластер тома и указывает, свободен ли данный кластер или занят некоторым файлом.

Другой важный системный файл - загрузочный файл (boot file), в котором хранится код начального загрузчика Windows NT. Для того чтобы можно было загрузить ОС, код начальной загрузки должен располагаться в определенном месте диска. Однако при форматировании утилита Format определяет эту область как файл, создавая для нее файловую запись. Благодаря созданию загрузочного файла NTFS может придерживаться своего правила рассматривать все, находящееся на томе, как файлы. Загрузочный файл, как и файлы метаданных NTFS, имеет отдельную защиту при помощи дескрипторов защиты, которые применимы к любым объектам Windows NT. Модель «все, что находится на диске, есть файл» означает также, что начальный загрузчик можно модифицировать путем обычных операций файлового ввода-вывода, хотя в настоящее время загрузочный файл защищен от редактирования.

NTFS также поддерживает файл плохих кластеров (bad cluster file) для ре­гистрации всех точек повреждения тома и файл тома (volume file), содержа­щий имя тома, версию NTFS, для которой он отформатирован, и бит, который, будучи установлен, сигнализирует, что содержимое тома повреждено и долж­но быть исправлено специальной утилитой (Chkdsk в версии Windows NT 4.0.). Наконец, имеется файл, содержащий таблицу определения атрибутов (attribute definition table), кото­рая задает типы атрибутов, поддерживаемые на томе, и указывает, можно ли их индексировать, восстанавливать операцией восстановления системы и т.д.

В NTFS файл целиком размещается в записи таблицы МFТ, если это позволяет сделать его размер. В том же случае, когда размер файла больше размера записи МFТ, в запись помещаются только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке тома (или нескольких отрезках). Часть файла, размещаемая в записи МFТ, называется резидентной частью, а остальные части – нерезидентными. Адресная информация об отрезках, содержащих нере- зидентные части файла, размещается в атрибутах резидентной части.

Некоторые системные файлы являются полностью резидентными, а некоторые имеют и нерезидентные части, которые располагаются после МFТ.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: