Вы находитесь на странице: 1из 14

Лабораторная работа №6

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

Цель работы: изучить организацию файловой системы NTFS

Теоретические сведения

Файловая система NTFS была разработана для ОС Windows NT с учетом опыта разработки
файловых систем FAT и HPFS. Основными отличиями являются:
 поддержка больших файлов и больших дисков объемом 264 байт;
 восстанавливаемость после сбоев и отказов программ и аппаратуры управления
дисками;
 высокая скорость операций, в том числе и для больших дисков;
 низкий уровень фрагментации;
 гибкая структура, допускающая развитие за счет добавления новых типов записей и
атрибутов файлов с сохранением совместимости с предыдущими версиями ФС;
 устойчивость к отказам дисковых накопителей;
 поддержка длинных символьных имен;
 контроль доступа к каталогам и отдельным файлам.

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


Все пространство тома (логического раздела) представляет собой либо файл, либо часть
файла. Каждый файл на томе NTFS представлен записью в специальном файле, называемом
главной файловой таблицей (MFT — Master File Table). Каждая запись MFT имеет фиксированную
длину, зависящую от объема диска: 1, 2, 4 Кб. Все файлы на томе идентифицируются номером
файла, который определяется позицией файла в MFT. Весь том NTFS состоит из
последовательности кластеров, в отличие от FAT, где на кластеры делилась только область
данных. Порядковый номер кластера в томе называется логическим номером кластера (Logical
Cluster Number, LCN). Файл NTFS также состоит из последовательности кластеров, при этом
порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual
Cluster Number, VCN). Базовая единица распределения дискового пространства для файловой
системы NTFS - это непрерывная область кластеров, называемая отрезком. В качестве адреса
отрезка NTFS используется логический номер его первого кластера, а также количество кластеров
в отрезке (LCN, к). Часть файла, помещенная в отрезок начинается с виртуального кластера VCN,
характеризуется адресом, состоящим из 3-х чисел: (VCN, LCN, к). Для хранения номера кластера
используются 64-разрядные указатели, что дает возможность поддерживать тома и файлы до 264
кластеров.
Загрузочный блок тома NTFS располагается в начале тома, а его копия - в середине тома.
Он содержит стандартный блок параметров BIOS, количество блоков в томе, начальный
логический номер кластера основной копии MFT и зеркальную копию MFT. Далее располагаются
1-й отрезок MFT, содержащий 16. стандартных, создаваемых при форматировании утилитой
Format записей о системных файлах NTFS.
Первая запись этой таблицы описывает непосредственно главную файловую таблицу; за
ней следует зеркальная запись (mirror record) MFT. Если первая запись MFT разрушена, то NTFS
читает вторую запись для отыскания зеркального файла MFT, первая запись которого идентична
первой записи MFT. Местоположения сегментов данных MFT и зеркального файла MFT записаны
в секторе начальной загрузки. Дубликат сектора начальной загрузки находится в логическом
центре диска.
Третья запись MFT — файл регистрации (log file); используется для восстановления
файлов. Файл регистрации подробно описан в настоящей главе ниже. Семнадцатая и последующие
записи главной файловой таблицы используются собственно файлами и каталогами (также
рассматриваются как файлы NTFS) на томе. На рис. 6.1 показана упрощенная структура MFT.
1
Рисунок 5.1- Упрощенная схема MFT

Системные файлы скрыты от просмотра на томе и используются только файловой


системой для хранения метаданных и поддержания работы файловой системы. Список системных
файлов NTFS представлен в таблице 1
Таблица 1
Системные файлы NTFS


Системный файл Имя файла Назначение файла
записи
0 Главная таблица файлов $Mft Содержит полный список файлов тома NTFS
(Master File Table)
1 Копия главной таблицы $MftMirr Зеркальная копия первых трех записей MFT, используется
файлов (Master File Table2) для гарантирования доступа к MFT в случае сбоя одиночного
сектора
2 Файл журнала (Log File) $LogFile Список шагов транзакций (операций), используемых Log File
System для восстановления состояния (recoverability)
файловой системы после сбоев
3 Том (Volume) SVolume Имя тома, версия NTFS и другая информация о томе
4 Таблица определения $AttrDef Таблица имен, номеров и описаний атрибутов
атрибутов (Attribute
Definition)
5 Индекс корня файловых $. Корневой каталог
имен (Root Filename Index)
6 Битовая карта кластеров $BitMap Описание содержимого тома показывающее какие
(Cluster Bitmap) размещаемые модули использованы
7 Загрузочный сектор $Boot Содержит информацию начальной загрузки для тома, если
раздела (Boot File) том является загрузочным
8 Файл плохих кластеров $BadClus Файл, содержащий список всех обнаруженных на томе
(Bad Cluster File) плохих кластеров
9 Таблица квот $Quota Квоты (ограничения) используемого пространства на диске
для каждого пользователя
10 Таблица преобразования $UpCase Используется для преобразования регистра символов для
регистра символов кодировки Unicode
11-15 Зарезервированы для будущего использования

2
В NTFS файл целиком размещается в записи таблицы MFT, если это позволяет сделать его
размер. В том случае, когда размер файла больше размера записи MFT, в запись помещаются
только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке или
нескольких отрезках тома. Часть файла, размещаемая в записи MFT, называется файла,
резидентной частью, а остальные части - нерезидентными. Адресная информация об отрезках,
содержащих нерезидентные части размещается в атрибутах резидентной части.
Нулевая запись MFT содержит описание самой MFT, в том числе и такой её важный
атрибут, как адреса всех её отрезков. После форматирования MFT состоит из одного отрезка, но
после создания первого же несистемного файла для хранения его атрибутов требуется еще один
отрезок, так как изначально непрерывная последовательность кластеров MFT уже завершена
системными файлами.
Структура файлов NTFS
Каждый файл и каталог на томе NTFS состоит из набора атрибутов. Каждый атрибут
файла NTFS состоит из полей: тип, длина, значение и имя атрибута. Тип, длина и имя образуют
заголовок атрибута. Имеется системный набор атрибутов, определяемых структурой тома NTFS.
Системные атрибуты имеют фиксированные имена и коды их типа, а также определенный формат.
Системный набор включает следующие атрибуты:
NTFS просматривает каждый файл (или каталог) как набор атрибутов файла. Такие
элементы, как имя файла, информация зашиты и даже данные — все это атрибуты файла. Каждый
атрибут идентифицирован кодом типа атрибута и, необязательно, именем атрибута.
Если атрибуты файла могут находиться внутри записи файла MFT, они называются
резидентными (resident) атрибутами. Например, информация типа имени файла и отметки времени
всегда включается в запись файла MFT. Если файл слишком большой, чтобы содержать все
атрибуты в записи файла MFT, часть атрибутов является нерезидентной (nonresident).
Нерезидентные атрибуты занимают один или несколько пробегов (run) дискового пространства в
другом месте тома (пробег дискового пространства — непрерывная линейная область на диске).
Вообще, все атрибуты могут быть вызваны как поток байтов независимо от того, являются
ли они резидентными или нерезидентными.
В таблице 2 представлен список всех атрибутов файла, в настоящее время определенных
для NTFS. Этот список расширяем, т. е. другие атрибуты файла в будущем могут быть определены
в случае необходимости.
Таблица 2
Атрибуты файла NTFS

Attribute List Список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где
(список атрибутов) расположен каждый атрибут; этот атрибут нужен в том случае, если атрибуты файла не
умещаются в основной записи и занимают дополнительные записи MFT.
File Name (имя файла) Атрибут, повторяющийся для длинных и для коротких имен файлов, содержит длинное
имя (Primary Filename) в формате Unicode до 255 символов, а также номер входа в
таблице MFT для родительского каталога; если этот файл содержится в нескольких
каталогах, то у него будет несколько атрибутов File Name; этот атрибут всегда должен
быть резидентным. Дополнительные имена, или жесткие связи (hard links), используются
POSIX и могут быть также включены в качестве дополнительных атрибутов имени
MS-DOS Name файла
Сдержит короткое имя файла (Alias - псевдоним) доступное для MS-DOS в формате
(имя MS-DOS) восемь плюс три символа (8.3), без учета регистра
Version (версия) Содержит номер последней версии файла.
Security Descriptor Содержит информацию о защите файла: список прав доступа ACL (Access Control List) и
(дескриптор поле аудита, которое определяет, какого рода операции над этим файлом нужно
безопасности) регистрировать.
Фиксирует информацию о том, кто может обращаться к файлу, кто является его
владельцем и так далее
Volume Version Версия тома, используется только в системных файлах тома.
(версия тома)
Volume Name (имя тома) Имя тома.
Data (данные) Cодержит данные файла.
3
MFT BitMap Содержит информацию об использовании записей в MFT или каталоге
(битовая карта MFT)
Index Root (корень Корень двоичного дерева, используемого для поиска файлов в каталоге.
индекса)
Index Allocation Нерезидентные части индексного списка двоичного дерева.
(размещение индекса)
Standard Information Атрибут хранит всю остальную стандартную информацию о файле, которую трудно
(стандартная связать с каким-либо из других атрибутов файла (бюджет связи, время создания, время
информация) обновления и т.д.).
Extended Attribute Используется файловыми серверами, которые связаны с системами OS/2. Этот тип
Information атрибута не используется Windows NT
(информация
расширенного
атрибута)
Extended Attributes Используется файловыми серверами, которые связаны с системами OS/2. Этот тип
(расширенные атрибута не используется Windows NT
атрибуты)
Длинные и короткие имена файлов NTFS поддерживает длинные (до 255 символов) имена
файлов. В имени файла используются символы UNICODE, что позволяет именовать файлы,
например, кириллическими символами. При этом решен вопрос доступа приложений из MS-DOS:
NTFS автоматически генерирует стандартное для MS-DOS имя вида «8.3».
Набор символов UNICODE для имен файлов делает возможным применение
«запрещенных» символов. Но так как и MS-DOS- и Windows-приложения такие символы «не
читают», при генерации короткого имени удаляются и эти символы, и любые пробелы. Чтобы
увидеть соответствие коротких имен файлов длинным, можно либо использовать команду DIR /X,
либо посмотреть свойства файла, щелкнув его правой кнопкой мыши и выбрав в контекстном
меню Properties.
Длинное имя файла теряется при сохранении приложениями MS-DOS или Windows 3.x на
том NTFS, если приложение сохраняет временный файл, удаляет первоначальный файл и
переименовывает временный файл в файл с первоначальным именем. Теряется и любой
уникальный набор расширений файла. Права же по умолчанию передаются из родительского
каталога заново.
Могут применяться атрибуты, определяемые пользователем. Атрибуты файла
упорядочены по убыванию кода атрибута, причем атрибут одного и того же типа может
повторяться несколько раз. Сортировка может осуществляться только по резидентным атрибутам.
Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень
большие, и сверхбольшие.
Небольшие файлы (small). Если файл имеет небольшой размер, то он может целиком
располагаться внутри одной записи MFT. Небольшие файлы состоят из следующих атрибутов: SI,
FN, Data, SD
Большие файлы (large). Если данные файла не помещаются в одну запись MFT, то этот
факт отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут
является нерезидентным, то есть находится в отрезках вне таблицы MFT. В этом случае атрибут
Data содержит адресную информацию (VCN, LN, к) каждого отрезка данных.
Очень большие файлы (huge). Если файл настолько велик, что его атрибут данных,
хранящий адреса нерезидентных отрезков данных, не помещается в одной записи, то этот атрибут
помещается в другую запись MFT, а ссылка на такой атрибут помещается в основную запись
файла. Эта ссылка содержится в атрибуте Attribute List. Сам атрибут данных по-прежнему
содержит адреса нерезидентных отрезков данных.
Сверхбольшие файлы (extremely huge). Для сверхбольших файлов в атрибуте Attribute List
можно указать несколько атрибутов, расположенных в дополнительных записях MFT. Кроме того,
можно использовать двойную косвенную адресацию, когда нерезидентный атрибут будет
ссылаться на другие нерезидентные атрибуты, поэтому в NTFS не может быть атрибутов слишком
большого для системы длины.

4
Согласованность с POSIX
Согласованность с POSIX позволяет переносить приложения UNIX в среду Windows NT.
Windows NT полностью согласована со стандартом 1003.1 института IEEE, который определяет
присвоение имен и идентификацию файлов.
Следующие возможности POSIX включены в NTFS:
• Чувствительные к регистру имена Для POSIX файлы README TXT, Readme.txt и readme.txt
являются различными.
• Жесткие связи (hard Imks) Файлу может быть присвоено несколько имен. Это позволяет двум
файлам с различными именами, которые могут быть размещены в различных каталогах, содержать
одни и те же данные.
• Дополнительные отметки времени Показывают, когда файл был последний раз использован или
изменен.
Внимание! Несмотря на то что NTFS поддерживает рсшстрозависимые имена, нельзя
использовать стандартные операции NTFS для управления файлами, имена которых отличаются
только регистром (к стандартным операциям относятся вьшолняемые из командной строки, типа
copy, del и move, и их эквиваленты в File Manager). Например, оба файла annm.doc и AnnM.Doc
будут удалены при использовании следующей команды:

del AnnM.Doc

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

Каталоги NTFS
Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит
атрибут Index Root. Индекс содержит список файлов, входящих в каталог. Индексы позволяют
сортировать файлы для ускорения поиска, основанного на значении определенного атрибута.
NTFS позволяет использовать для сортировки любой атрибут, если он хранится в резидентной
форме.
Имеются две формы хранения списка файлов.
Небольшие каталоги (small indexes). Если количество файлов в каталоге невелико, то
список файлов может быть резидентным в записи MFT, являющейся каталогом. Для резидентного
хранения списка используется единственный атрибут - Index Root. Список файлов содержит
значения атрибутов файла. По умолчанию - это имя файла и номер записи MFT, содержащей
начальную запись файла.
Большие каталоги (large indexes). По мере того, как каталог растет, список файлов может
потребовать нерезидентной формы хранения. Начальная часть списка всегда остается резидентной
в корневой записи каталога в таблице MFT.
Имена файлов резидентной части списка файлов являются узлами двоичного дерева.
Остальные части списка размещаются вне MFT. Для их поиска используется атрибут Index
Allocation, представляющий собой адреса отрезков, хранящих остальные части списка файлов
каталога. Одни части списка являются листьями дерева, другие являются промежуточными
узлами, то есть содержат наряду с именами файлов атрибут Index Allocation, указывающий на
списки файлов более низких уровней.
Узлы двоичного дерева делят весь список файлов на несколько групп. Имя каждого файла-
узла является именем последнего файла в соответствующей группе.
Поиск в каталоге уникального имени файла, которым в NTFS является номер основной
записи о файле в MFT, по его символьному имени происходит следующим образом. Сначала
искомое имя сравнивается с именем первого узла в резидентной части индекса. Если искомое имя
меньше, то это означает, что его надо искать в первой нерезидентной группе, для чего из атрибута
Index Allocation извлекается адрес отрезка (VCNj, LCNj, kj), хранящего имена файлов первой
группы. Среди имен этой группы поиск осуществляется перебором имен и сравнением до полного
совпадения всех символов. При совпадении из каталога извлекается номер основной записи о
5
файле в MFT и остальные характеристики файла.
Если искомое имя больше имени первого узла резидентной части индекса, то его
сравнивают с именем второго узла, и если искомое имя меньше, то описанная процедура
применяется ко второй нерезидентной группе имен и т.д.
Если одна из групп каталога становится слишком большой, то её также делят на группы,
последние имена каждой новой группы оставляют в исходном нерезидентном атрибуте Index Root,
а все остальные имена групп переносят в новые нерезидентные атрибуты типа Index Root. К
исходному нерезидентному атрибуту Index Root добавляется атрибут размещения индекса,
указывающий на отрезки индекса новых групп.

Задание на лабораторную работу

Данную работу необходимо выполнять только с использованием


отформатированного флеш накопителя (предпочтительный способ), либо (при
наличии) на виртуальной машине, либо на созданном и
проинициализированном виртуальном разделе. Запрещено проводить
исследования на рабочем томе, где установлена операционная система. В
противном случае вы несете всю ответственность за действия выполняемые
вами.

1. Необходимо изучить внутреннюю структуру тома NTFS. Для этого необходимо


иметь у себя на ПК размеченный и отформатированный под файловую систему NTFS том с
соответствующим разделом.
ВАЖНО!!! Рекомендуется использовать для выполнения данной работы флеш накопитель
отформатированный под файловую систему NTFS (можно рассмотреть также и «загрузочные
флешки», отформатированные под NTFS, а именно посмотреть, есть ли разница между
«загрузочной флешкой» и обычной, в том числе с точки зрения информации, которую будет
выводить утилиты, которые будут использованы в данной работе). В случае, если у вас отсутствует
логический диск, отформатированный под файловую систему NTFS, отсутствует флеш накопитель
или вы опасаетесь за работоспособность вашей системы после работы с файловой системой, то
рекомендуется проводить все операции, либо на виртуальной машине (если есть возможность),
либо, используя стандартную оснастку «Управление компьютером», создать виртуальный
жесткий диск (Virtual Hard Disk, VHD), в последствии, проинициализировать, создать на нем том и
отформатировать его под NTFS, как показано на рисунках 1, 2, 3, 4, 5, 6.

6
Рисунок 1- Пример создания виртуального жесткого диска

Рисунок 2 -Инициализация диска

7
Рисунок 3 -Инициализация диска

Рисунок 4 -Создание тома

8
Рисунок 5 - Форматирование раздела

Рисунок 6 -Созданный новый том

Для изучения внутренней структуры дисков существует множество готовых утилит. Среди
них можно выделить, например, NTFSInfo (https://docs.microsoft.com/en-
us/sysinternals/downloads/ntfsinfo), входящий в пакет Windows Sysinternals
(https://technet.microsoft.com/ru-ru/sysinternals), содержащий большое количество
утилит для работы с потоками, сетью, жесткими дисками. Также существует удобная возможность
получения всего пула инструментов, за счёт использования совместного доступа к ресурсу
Sysinternals Live, как показано на рисунке 7, что может быть удобно администраторам и другим
техническим специалистам

9
Рисунок 7 - Организация совместного доступа к ресурсу Sysinternals Live

Однако необходимо учитывать, что в силу особенностей организации работы данной


утилиты и используемых подходов, данная утилита официально поддерживает версии ОС
Windows, начиная с Vista и выше.
Используя утилиту NTFSInfo, необходимо получить информацию о выбранном томе
(NTFS), как показано на рисунке 8

Рисунок 8 - Вывод информации о созданном ранее томе (Е:\\) посредством утилиты


NTFSInfo

Полученную информацию необходимо отобразить в отчёте по лабораторной работе с


объяснением полученных значений, то есть объяснить, что означает каждая выведенная на экран
запись.
10
2. Второе задание данной лабораторной работы является не обязательным -
правильное выполнение первой части будет достаточно для принятия данной работы.
Вторая часть работы направлена на тех, кто хочет более подробно посмотреть, как устроена
файловая система NTFS. Во втором задании, вам необходимо более детально исследовать диск и
разделы с файловой системой NTFS. Для этого можно воспользоваться DiskExplorer for NTFS
(http://www.runtime.org/diskexplorer.htm). Используя DiskExplorer for NTFS можно получить и
просмотреть данные таблицы размещения файлов (MFT), загрузочной записи, таблицу разделов.
Все эти данные можно просматривать в виде обычного текста, в шестнадцатеричном виде (hex), в
виде индексов в таблице файлов. Также есть специфические возможности, такие, как определение
конкретных кластеров на диске, в которых размещён указанный файл, или наоборот, какой файл в
указанном кластере. Стоит отметить, что DiskExplorer for NTFS довольно мощный инструмент, в
том числе имеется возможность прямой работы с диском, при котором вы будете писать и
редактировать файле на диске напрямую, следовательно, те рекомендации, которые были даны
выше, не теряют актуальность. То есть при работе с системными утилитами вы должны осознавать
и понимать все действия, выполняемые вами. В данном примере, показан процесс работы с
виртуальным диском. Пример работы с программой показан на рисунках 9

Рисунок 9- Открытие меню и выбор диска

11
Рисунок 10 - выбор диска(в данном случае, созданный диск Е:\\)

Рисунок 11 - Информация о загрузочном секторе

12
Рисунок 12 - Открытие информации о файловых записях в MFT

Рисунок 13 - Файловые записи

Здесь в первой строке:


 Sector – начальный сектор данной файловой записи: сверху – в шестнадцатеричном виде,
снизу – в десятичном;
13
 Name – имя файла (или каталога);
 Type – тип файловой записи (файл или каталог);
 Attributes – DOS атрибуты файла (например, s – системный, h – скрытый); не путать с NTFS
атрибутами;
 Size – размер всего файла в байтах (не только файловой записи); отображается в десятичном
виде;
 Date – дата и время модификации файла (или каталога);
 1st cluster – первый кластер файла, если он имеет нерезидентные атрибуты;
 NT Attributes – NTFS атрибуты.
Во второй строке:
 No – номер записи в MFT;
 Parent – номер записи в MFT для родительского каталога; например, для всех первых файлов в
MFT этот номер будет равен 5 – номеру записи для корневого каталога (обозначается точкой);
 Run – список групп для нерезидентных файлов.

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

Контрольные вопросы:
3. Перечислите основные характеристики ФС NTFS
4. Как организован том NTFS?
5. Что такое метафайлы? Какую информацию они хранят?
6. Какие атрибуты файла NTFS м известны?
7. Как организованы файлы?
8. Как организованы каталоги?

14

Вам также может понравиться