Академический Документы
Профессиональный Документы
Культура Документы
Теоретические сведения
Файловая система NTFS была разработана для ОС Windows NT с учетом опыта разработки
файловых систем FAT и HPFS. Основными отличиями являются:
поддержка больших файлов и больших дисков объемом 264 байт;
восстанавливаемость после сбоев и отказов программ и аппаратуры управления
дисками;
высокая скорость операций, в том числе и для больших дисков;
низкий уровень фрагментации;
гибкая структура, допускающая развитие за счет добавления новых типов записей и
атрибутов файлов с сохранением совместимости с предыдущими версиями ФС;
устойчивость к отказам дисковых накопителей;
поддержка длинных символьных имен;
контроль доступа к каталогам и отдельным файлам.
№
Системный файл Имя файла Назначение файла
записи
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 добавляется атрибут размещения индекса,
указывающий на отрезки индекса новых групп.
6
Рисунок 1- Пример создания виртуального жесткого диска
7
Рисунок 3 -Инициализация диска
8
Рисунок 5 - Форматирование раздела
Для изучения внутренней структуры дисков существует множество готовых утилит. Среди
них можно выделить, например, 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
11
Рисунок 10 - выбор диска(в данном случае, созданный диск Е:\\)
12
Рисунок 12 - Открытие информации о файловых записях в MFT
В этой части работы, вам необходимо вывести информацию в таком же виде для вашего
тестового тома, с объяснением полученных значений.
Контрольные вопросы:
3. Перечислите основные характеристики ФС NTFS
4. Как организован том NTFS?
5. Что такое метафайлы? Какую информацию они хранят?
6. Какие атрибуты файла NTFS м известны?
7. Как организованы файлы?
8. Как организованы каталоги?
14