Из чего состоит атрибут ntfs

Обновлено: 01.07.2024

Атрибуты файла NTFS

Как я неоднократно упоминал в этом обсуждении NTFS, почти все в NTFS является файлом, а файлы реализованы как наборы атрибутов. Атрибуты — это просто фрагменты информации различного рода. Значение информации в атрибуте зависит от того, как программное обеспечение интерпретирует и использует содержащиеся в нем биты. Каталоги хранятся так же, как и файлы; у них просто разные атрибуты, которые по-разному используются файловой системой.

  • Резидентные атрибуты. Атрибуты, требующие относительно небольшого объема памяти, хранятся непосредственно в самой основной записи MFT файла. Они называются резидентными атрибутами. Многие из самых простых и наиболее распространенных атрибутов файла хранятся в файле MFT. На самом деле, для правильной работы NTFS требует, чтобы некоторые из них были резидентными в записи MFT. Например, имя файла, а также дата/время его создания, изменения и доступа являются резидентными для каждого файла.
  • Нерезидентные атрибуты: если для атрибута требуется больше места, чем доступно в записи MFT, он, очевидно, не сохраняется в этой записи. Вместо этого атрибут помещается в отдельное место. Указатель помещается в MFT, который ведет к расположению атрибута. Это называется нерезидентным хранилищем атрибутов.

На практике в записи MFT могут помещаться только самые маленькие атрибуты, поскольку записи довольно малы. Многие другие атрибуты будут храниться нерезидентно, особенно данные файла, который также является атрибутом. Нерезидентное хранилище само по себе может принимать две формы. Если атрибут не помещается в MFT, но указатели на данные помещаются, то данные помещаются в прогон данных, также называемый экстентом, за пределами MFT. , а указатель на выполнение помещается в запись MFT файла. На самом деле атрибут может храниться во многих различных запусках, каждый с отдельным указателем. Если в файле так много экстентов, что даже указатели на них не помещаются, весь атрибут данных может быть перемещен во внешний атрибут в отдельной записи MFT или даже в несколько внешних атрибутов. Дополнительные сведения об этом механизме расширения см. в обсуждении хранилища файлов.

  • Список атрибутов: это «мета-атрибут»: атрибут, описывающий другие атрибуты. Если необходимо сделать атрибут нерезидентным, этот атрибут помещается в исходную запись MFT, чтобы действовать как указатель на нерезидентный атрибут.
  • Растровое изображение: содержит растровое изображение выделения кластера. Используется файлом метаданных $Bitmap.
  • Данные: содержит данные файла. По умолчанию все данные в файле хранятся в одном атрибуте данных — даже если этот атрибут разбит на множество частей из-за размера, это все равно один атрибут — но для специальных приложений может быть несколько атрибутов данных.< /li>
  • Расширенные атрибуты (EA) и информация о расширенных атрибутах: это специальные атрибуты, реализованные для совместимости с использованием OS/2 разделов NTFS. Насколько мне известно, они не используются в Windows NT/2000.
  • Имя файла (FN): в этом атрибуте хранится имя, связанное с файлом или каталогом. Обратите внимание, что файл или каталог может иметь несколько атрибутов имени файла, чтобы обеспечить хранение «обычного» имени файла вместе с коротким псевдонимом имени файла MS-DOS, а также жесткими ссылками, подобными POSIX, из нескольких каталогов. Дополнительные сведения об именовании файлов NTFS см. здесь.
  • Корневой атрибут индекса. Этот атрибут содержит фактический индекс файлов, содержащихся в каталоге, или часть индекса, если он большой. Если каталог небольшой, весь индекс уместится в пределах этого атрибута в MFT; если он слишком велик, часть информации находится здесь, а остальная часть хранится в атрибутах внешнего индексного буфера.
  • Атрибут распределения индекса: если индекс каталога слишком велик для размещения в корневом атрибуте индекса, запись MFT для каталога будет содержать атрибут распределения индекса, который содержит указатели на записи буфера индекса, содержащие остальную информацию индекса каталога. .
  • Дескриптор безопасности (SD): этот атрибут содержит информацию о безопасности, которая управляет доступом к файлу или каталогу. Списки контроля доступа (ACL) и связанные данные хранятся в этом атрибуте. Здесь также хранится информация о владении файлом и сведения об аудите.
  • Стандартная информация (SI): содержит «стандартную информацию» для всех файлов и каталогов. Это включает в себя основные свойства, такие как метки даты/времени, когда файл был создан, изменен и доступ к нему. Он также содержит "стандартные" FAT-подобные атрибуты, обычно связанные с файлом (например, является ли файл доступным только для чтения, скрытым и т. д.)
  • Имя тома, информация о томе и версия тома. Эти три атрибута хранят имя ключа, версию и другую информацию о томе NTFS.Используется файлом метаданных $Volume.

Примечание. Подробнее о том, как работают атрибуты, связанные с файлами, см. на странице файлового хранилища; для каталогов, страница по каталогам.

Помимо этих атрибутов, определяемых системой, NTFS также поддерживает создание атрибутов, определяемых пользователем. Однако это имя немного вводит в заблуждение, поскольку термин «пользователь» действительно дан с точки зрения Microsoft! «Пользователь» в этом контексте означает разработчика приложений — программы могут создавать свои собственные атрибуты файлов, но настоящие пользователи NTFS, как правило, не могут.

Файловая система NTFS рассматривает каждый файл (или папку) как набор атрибутов файла. Такие элементы, как имя файла, его информация о безопасности и даже его данные, являются атрибутами файла. Каждый атрибут идентифицируется кодом типа атрибута и, при необходимости, именем атрибута.

Когда атрибуты файла могут соответствовать записи файла MFT, они называются резидентными атрибутами. Например, такая информация, как имя файла и отметка времени, всегда включается в запись файла MFT.

Если вся информация о файле слишком велика для записи файла MFT, некоторые из его атрибутов являются нерезидентными. Нерезидентным атрибутам выделяется один или несколько кластеров дискового пространства в другом месте тома.

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

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

Атрибуты файла таблицы, определенные NTFS

Тип атрибута Описание
Стандартная информация Включает такую ​​информацию, как метка времени и количество ссылок.
Атрибут Список Перечисляет расположение всех записей атрибутов, которые не помещаются в запись MFT.
Имя файла< /td> Повторяющийся атрибут как для длинных, так и для коротких имен файлов. Длинное имя файла может содержать до 255 символов Юникода. Короткое имя — это имя файла в формате 8.3 без учета регистра. Дополнительные имена или жесткие ссылки, требуемые POSIX, могут быть включены в качестве дополнительных атрибутов имени файла.
Дескриптор безопасности Описывает, кому принадлежит файл и кто может получить к нему доступ.
Данные Содержит данные файла. NTFS допускает использование нескольких атрибутов данных в файле. Каждый файл обычно имеет один безымянный атрибут данных. Файл также может иметь один или несколько именованных атрибутов данных, каждый из которых использует определенный синтаксис.
Идентификатор объекта Уникальный для тома идентификатор файла. Используется службой отслеживания распределенных ссылок. Не все файлы имеют идентификаторы объектов.
Журналируемый поток служебных программ Аналогичен потоку данных, но операции регистрируются в файл журнала NTFS точно так же, как изменяются метаданные NTFS. Используется EFS.
Точка повторной обработки Используется для точек подключения тома. Они также используются драйверами фильтров устанавливаемой файловой системы (IFS), чтобы пометить определенные файлы как специальные для этого драйвера.
Корень индекса Используется для реализации папок и других индексов.
Распределение индексов Используется для реализации папок и другие индексы.
Bitmap Используется для реализации папок и других индексов.
Информация о томе Используется только в системном файле $Volume. Содержит версию тома.
Имя тома Используется только в системном файле $Volume. Содержит метку тома.

О нас

LSoft Technologies Inc. — частная североамериканская компания-разработчик программного обеспечения. Наша цель — создавать лучшие в мире решения для восстановления данных, безопасности и резервного копирования, обеспечивая высочайшую производительность, инновации и непревзойденное обслуживание клиентов.

Файловая система NTFS рассматривает каждый файл (или папку) как набор атрибутов файла. Такие элементы, как имя файла, его информация о безопасности и даже его данные, являются атрибутами файла. Каждый атрибут идентифицируется кодом типа атрибута и, при необходимости, именем атрибута.

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

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

Тип атрибута Описание
Стандартная информация Включает такую ​​информацию, как отметка времени и количество ссылок.
Список атрибутов Перечисляет расположение всех записей атрибутов, которые не помещаются в запись MFT.
Имя файла A повторяемый атрибут как для длинных, так и для коротких имен файлов. Длинное имя файла может содержать до 255 символов Юникода. Короткое имя — это имя файла в формате 8.3 без учета регистра. Дополнительные имена или жесткие ссылки, требуемые POSIX, могут быть включены в качестве дополнительных атрибутов имени файла.
Дескриптор безопасности Описывает, кому принадлежит файл и кто может доступ к нему.
Данные Содержит данные файла. NTFS допускает использование нескольких атрибутов данных в файле. Каждый файл обычно имеет один безымянный атрибут данных. Файл также может иметь один или несколько именованных атрибутов данных, каждый из которых использует определенный синтаксис.
Идентификатор объекта Уникальный для тома идентификатор файла. Используется службой отслеживания распределенных ссылок. Не все файлы имеют идентификаторы объектов.
Журналируемый поток инструментов Аналогичен потоку данных, но операции регистрируются в файле журнала NTFS так же, как и метаданные NTFS. изменения. Используется EFS.
Точка повторной обработки Используется для точек подключения тома. Они также используются драйверами фильтров Installable File System (IFS), чтобы пометить определенные файлы как специальные для этого драйвера.
Корень индекса Используется для реализации папок. и другие индексы.
Распределение индекса Используется для реализации папок и других индексов.
Растровое изображение Используется для реализации папок и других индексов.
Информация о томе Используется только в системном файле $Volume. Содержит версию тома.
Имя тома Используется только в системном файле $Volume. Содержит метку тома.

Системные файлы NTFS

NTFS включает в себя несколько системных файлов, все из которых скрыты от просмотра на томе NTFS. Системный файл используется файловой системой для хранения метаданных и реализации файловой системы. Системные файлы помещаются на том с помощью утилиты Format.

Метаданные, хранящиеся в основной таблице файлов

< td>$MftMirr < td>$Secure < /таблица>

Несколько потоков данных NTFS

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

Эта функция позволяет управлять данными как единым блоком. Ниже приведен пример альтернативного потока:

Может существовать библиотека файлов, в которой файлы определены как альтернативные потоки, как в следующем примере:

Файл может быть связан одновременно с несколькими приложениями, такими как Microsoft ® Word и Microsoft © WordPad. Например, файловая структура, подобная следующей, иллюстрирует ассоциацию файлов, но не несколько файлов:

Чтобы создать альтернативный поток данных, в командной строке можно ввести такие команды, как:

При копировании файла NTFS на том FAT, например на дискету, потоки данных и другие атрибуты, не поддерживаемые FAT, теряются.

Сжатые файлы NTFS

Windows NT/2000 поддерживает сжатие отдельных файлов, папок и целых томов NTFS. Файлы, сжатые в томе NTFS, могут быть прочитаны и записаны любым приложением Windows без предварительной распаковки другой программой. Распаковка происходит автоматически при чтении файла. Файл снова сжимается при закрытии или сохранении. Сжатые файлы и папки имеют атрибут C при просмотре в проводнике Windows.

Только NTFS может читать сжатую форму данных. Когда приложение, такое как Microsoft® Word, или команда операционной системы, например, команда копирования, запрашивает доступ к файлу, драйвер фильтра сжатия распаковывает файл перед тем, как сделать его доступным. Например, если вы копируете сжатый файл с другого компьютера под управлением Windows NT/2000 в сжатую папку на жестком диске, файл распаковывается при чтении, копировании и повторно сжимается при сохранении.

Этот алгоритм сжатия аналогичен алгоритму, используемому приложением Windows 98 DriveSpace 3, с одним важным отличием: ограниченная функциональность позволяет сжимать весь первичный или логический том. NTFS позволяет сжимать весь том, одну или несколько папок в томе или даже один или несколько файлов в папке тома NTFS.

Алгоритмы сжатия в NTFS поддерживают кластеры размером до 4 КБ. Когда размер кластера превышает 4 КБ на томе NTFS, ни одна из функций сжатия NTFS недоступна.

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

NTFS обеспечивает доступ к сжатому файлу в режиме реального времени, распаковывая файл при открытии и сжимая его при закрытии. При записи сжатого файла система резервирует место на диске для несжатого размера. Система возвращает неиспользованное пространство при сжатии каждого отдельного буфера сжатия.

Файлы, зашифрованные NTFS (только для Windows 2000)

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

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

Пользователи работают с зашифрованными файлами и папками так же, как и с любыми другими файлами и папками. Шифрование прозрачно для пользователя, зашифровавшего файл; система автоматически расшифровывает файл или папку при доступе пользователя. При сохранении файла шифрование применяется повторно. Однако злоумышленники, пытающиеся получить доступ к зашифрованным файлам или папкам, получают сообщение «Отказано в доступе», если пытаются открыть, скопировать, переместить или переименовать зашифрованный файл или папку.

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

Разреженные файлы NTFS (только для Windows 2000)

Разреженный файл имеет атрибут, который заставляет подсистему ввода-вывода выделять только значимые (ненулевые) данные. Ненулевые данные размещаются на диске, а незначимые данные (большие строки данных, состоящие из нулей) — нет. При чтении разреженного файла выделенные данные возвращаются в том виде, в каком они были сохранены; нераспределенные данные по умолчанию возвращаются как нули.

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

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

С установленным атрибутом разреженного файла файловая система может освобождать данные из любого места в файле и при вызове приложения выдавать нулевые данные по диапазону вместо сохранения и возврата фактических данных. Интерфейсы прикладного программирования (API) файловой системы позволяют копировать или поддерживать файл в виде фактических битов и диапазонов разреженных потоков. Конечным результатом является эффективное хранение и доступ к файловой системе. На следующем рисунке показано, как данные хранятся с установленным атрибутом разреженного файла и без него.

Если вы скопируете или переместите разреженный файл в FAT или том с файловой системой NTFS, отличной от Windows 2000, файл будет построен до исходного указанного размера. Если необходимое пространство недоступно, операция не завершается.

Ниже приведен список «атрибутов» NTFS. Атрибут NTFS — это НЕОБЯЗАТЕЛЬНЫЙ параметр, который МОЖЕТ использоваться программным обеспечением для принятия разумных решений о том, как обращаться с конкретным файлом.

Например, если файл помечен буквой "O", это означает, что он находится в АВТОНОМНОМ режиме. Автономный файл может быть доступен в Azure File Sync, что означает, что файл фактически хранится в облаке Azure, но ваш локальный ПК или файловый сервер имеет ссылку на него. Учитывая, что он находится в облаке, ему нужно дать дополнительное время для загрузки, и интеллектуальная программа учтет это перед истечением времени ожидания.

  • APLO = Архивировать, Разрежать, Повторно анализировать, Автономно — это обычное дело для Синхронизации файлов Azure
  • HSA = Скрытый, Системный, Архивный — это обычное дело для стандартных локальных файлов ОС Windows.

Чтобы просмотреть атрибуты файла в графическом интерфейсе Windows, просто щелкните правой кнопкой мыши заголовок столбца, выберите "БОЛЬШЕ", затем выберите "АТРИБУТЫ" и нажмите "ОК".

ОПРЕДЕЛЕНИЯ АТРИБУТОВ NTFS:

A = Архив: это специальный бит, который используется в качестве «канала связи» между программными приложениями, которые изменяют файлы, и теми, которые используются для резервного копирования. Большинство программ для резервного копирования позволяет пользователю выполнять добавочное резервное копирование, при котором для резервного копирования выбираются только те файлы, которые изменились с момента последнего резервного копирования. Этот бит используется для этой цели. Когда программа резервного копирования создает резервную копию («архивирует») файл, она очищает бит архива (обнуляет). Любое программное обеспечение, которое впоследствии изменяет файл, должно установить бит архива. Затем, в следующий раз, когда программа резервного копирования будет запущена, она узнает, просматривая биты архива, какие файлы были изменены и, следовательно, для каких файлов необходимо создать резервную копию. Опять же, это использование бита является «добровольным»; программное обеспечение резервного копирования полагается на другое программное обеспечение для правильного использования бита архива; некоторые программы могут изменить файл, не устанавливая атрибут архива, но, к счастью, большинство программ «хорошо себя ведет» и правильно использует этот бит. Тем не менее, вы не должны полностью полагаться на этот механизм для обеспечения резервного копирования важных файлов.

C = Сжатый: это сжатый файл или папка, которые нельзя зашифровать.

D = Каталог: это бит, который различает записи, описывающие файлы, и те, которые описывают подкаталоги в текущем каталоге. Теоретически вы можете преобразовать файл в каталог, изменив этот бит. Конечно, на практике попытка сделать это приведет к беспорядку — запись для каталога должна быть в определенном формате.

E = Зашифровано: это зашифрованный файл или папка, которые нельзя сжать.

H = Hidden: это тоже говорит само за себя; если файл помечен как скрытый, то при нормальных обстоятельствах он скрыт от просмотра. DOS не отобразит файл, когда вы наберете «DIR», если не используется специальный флаг, как показано в предыдущем примере.

I = Содержимое не проиндексировано: этот файл может быть проиндексирован поисковыми службами, но содержимое файла — нет.

L = Точки повторной обработки: это означает, что это всего лишь ССЫЛКА на другое место

N = Не индексируется: файл не включен в индекс поисковых служб.

O = Offline: это означает, что он не хранится локально. Возможно, он находится в Azure File Sync, поэтому на вашем компьютере есть только ссылка на него

P = разреженный файл: это делает использование дискового пространства более эффективным.Когда включена функция разреженного файла, система не выделяет место на жестком диске для файла, за исключением областей, где он содержит ненулевые данные. Когда предпринимается попытка записи, когда большое количество данных в буфере содержит нули, нули не записываются в файл. Вместо этого файловая система создает внутренний список, содержащий расположение нулей в файле, и к этому списку обращаются во время всех операций чтения. Вам может быть интересно ЭТО и ЭТО.

R = Только для чтения. Большинство программ, увидев файл, помеченный как доступный только для чтения, отказываются удалять или изменять его. Это довольно прямолинейно. Например, DOS скажет «Отказано в доступе», если вы попытаетесь удалить файл, доступный только для чтения. С другой стороны, проводник Windows с удовольствием его проглотит. Некоторые выберут золотую середину: они позволят вам изменить или удалить файл, но только после запроса подтверждения.

S = System: этот флаг используется для пометки важных файлов, которые используются системой и не должны изменяться или удаляться с диска. По сути, это похоже на «более серьезный» флаг только для чтения и по большей части обрабатывается таким образом. Это также «сверхскрытый» атрибут. Даже если вы включите «Показывать скрытые файлы», системные файлы отображаться не будут. (Вы можете отобразить их, отключив параметр «Скрывать защищенные системные файлы».)

T = Temporary: файл помечен как непостоянный. Многие программы (например, программы для резервного копирования) игнорируют файлы с атрибутом T.

В предыдущем разделе было описано, как мы обрабатываем запись MFT и заголовки атрибутов. Каждый заголовок атрибута указывает на резидентное или нерезидентное местоположение, где можно найти содержимое атрибута. В этом разделе объясняется, как мы обрабатываем каждый из различных типов содержимого атрибута.

Атрибут $STANDARD_INFORMATION с идентификатором типа 16 всегда является резидентным и содержит основные метаданные для файла или каталога. Он существует в каждом файле и каталоге и обычно является первым атрибутом, поскольку имеет самый низкий идентификатор типа. Он имеет (необязательные) поля, указанные в таблице 13.5.

Таблица 13.5. Структура данных для атрибута $STANDARD_INFORMATION.

Время изменения файла

Время изменения MFT

Время доступа к файлу

Флаги (см. Таблицу 13.6)

Максимальное количество версий

Идентификатор владельца (версия 3.0+)

Идентификатор безопасности (версия 3.0+)

Квота списана (версия 3.0+)

Порядковый номер обновления (USN) (версия 3.0+)

Четыре значения времени хранятся в виде ста наносекунд с 1 января 16:01 по всемирному координированному времени. Те же поля времени существуют и в атрибуте $FILE_NAME, но это те, которые Windows отображает при просмотре свойств файла, и именно они обновляются. Значения ID используются либо для функций уровня приложения, либо для безопасности. Значение идентификатора безопасности — это индекс файла $Secure, а не значение SID Windows. Значения флагов приведены в таблице 13.6.

Таблица 13.6. Значения флага для атрибута $STANDARD_INFORMATION.

Контент не индексируется для более быстрого поиска

Многие из этих флагов такие же, как и в FAT, и их описание можно найти там. Флаги для зашифрованных и разреженных атрибутов также указаны в заголовках атрибутов, поэтому я считаю их несущественными в этом месте. Однако это спорно, потому что другой человек может заявить, что этот флаг необходим, а значения заголовка записи MFT не важны.

Давайте рассмотрим атрибут $STANDARD_INFORMATION. Мы можем просмотреть атрибут, используя icat и указав тип атрибута. Это автоматически удаляет стандартный заголовок для нас и дает нам только контент. Содержимое атрибута файла $MFT:

Первые восемь байтов показывают время создания, одинаковое для всех четырех полей времени. Байты с 32 по 35 задают значение флага, равное 0x00000060, и включают биты для скрытого и системного, что ожидается для файла метаданных файловой системы. Байты с 36 по 39 и с 40 по 43 показывают, что версии файлов не используются, а с 44 по 47 показывают, что идентификатор класса равен 0. Идентификатор владельца в байтах с 48 по 51 равен 0, а идентификатор безопасности в байтах с 52 по 55 равен 1. Остальные значения равны 0, что неудивительно для $MFT, поскольку он обычно не применяется ни к какой пользовательской квоте, и в большинстве систем не включено ведение журнала изменений, поэтому USN не будет быть назначенным.

Атрибут $FILE_NAME с идентификатором типа 48 используется для двух целей. Он помещается в запись MFT для хранения имени файла и информации о родительском каталоге и используется в индексе каталога. Когда он используется в записи MFT, он не содержит никакой важной информации, но содержит, когда используется в индексе каталога.

Для стандартного файла или каталога это будет второй атрибут, который всегда является резидентным.Если для файла требуется несколько записей MFT, между атрибутом $STANDARD_INFORMATION и этим атрибутом будет стоять атрибут $ATTRIBUTE_LIST. Атрибут $FILE_NAME имеет поля, указанные в таблице 13.7.

Таблица 13.7. Структура данных для атрибута $FILE_NAME.

Ссылка на файл родительского каталога

Время создания файла

Время изменения файла

Время модификации MFT

Время доступа к файлу

Выделенный размер файла

Реальный размер файла

Флаги (см. Таблицу 13.6)

Пространство имен (см. Таблицу 13.8)

Последние три поля имени необходимы, когда этот атрибут используется в индексе каталога, но не когда он используется в записи MFT для файла. Поле флага использует те же значения, что и $STANDARD_INFORMATION, и они были перечислены ранее.

Байт пространства имен определяет, каким правилам следует имя. Его значения приведены в таблице 13.8.

Таблица 13.8. Значения поля пространства имен $FILE_NAME.

Значение пространства имени

POSIX: Имя чувствительно к регистру и допускает использование всех символов Юникода, кроме '/' и NULL.

Win32: имя нечувствительно к регистру и допускает использование большинства символов Юникода, за исключением специальных значений, таких как '/', '', ':', '>', '

Таблица 13.9. Структура данных для записей списка в атрибуте $ATTRIBUTE_LIST.

Длина этой записи

Смещение имени (относительно начала этой записи)

Запуск VCN в атрибуте

Ссылка на файл, в котором находится атрибут

Начальное значение VCN используется, когда для описания одного атрибута требуется несколько записей MFT. Когда это произойдет, дополнительные записи будут иметь ненулевые начальные значения VCN. Заголовок атрибута также должен показывать, что он имеет ненулевой начальный VCN.

Давайте посмотрим на файл с атрибутом $ATTRIBUTE_LIST.

Первые четыре байта показывают тип первой записи, которая равна 16 (0x10) и, следовательно, атрибут $STANDARD_INFORMATION. Байты с 4 по 5 показывают, что длина этой записи списка составляет 32 байта (0x0020), а байты с 16 по 21 показывают, что атрибут расположен в записи MFT 5009 (0x1391), которую мы сейчас рассматриваем.

Следующие две записи начинаются с байтов 32 и 64 и относятся к атрибутам $FILE_NAME, которые имеют идентификатор типа 48 (0x30). Оба этих атрибута также находятся в текущей записи MFT.

В байте 96 начинается первая запись для атрибута $DATA. Байты с 104 по 111 показывают, что этот атрибут $DATA относится к VCN 0 атрибута, а байты с 112 по 117 показывают, что атрибут расположен в записи MFT 4919 (0x1337). Вторая запись для атрибута $DATA начинается с байта 128. Мы можем сказать, что они являются частью одного и того же атрибута $DATA, потому что значение идентификатора в обеих структурах данных равно 0. Байты со 136 по 143 показывают нам, что вторая запись имеет начиная с VCN 5152 (0x1420). Другими словами, атрибут $DATA в первой записи имел достаточно места в записи MFT для описания первых 5152 кластеров. Остальные запуски кластера хранятся в атрибуте $DATA в записи MFT 5037 (0x13ad), которую мы можем видеть в байтах со 144 по 149.

На рис. 13.4 показана сводка этого файла. Он имеет один атрибут $STANDARD_INFORMATION и два атрибута $FILE_NAME в базовой записи MFT 5009, а заголовки для атрибута $DATA расположены в записях 4919 и 5037.

Рисунок 13.4. Макет записей списка атрибутов для примера изображения.

Вспомните из главы 12, что небазовые записи MFT не будут иметь стандартных атрибутов $FILE_NAME и $STANDARD_INFORMATION. Мы можем убедиться в этом, взглянув на одну из записей в этом примере. Результат запуска istat для небазовой записи 4919 выглядит следующим образом:

Эта запись MFT имеет только атрибут $DATA, и мы видим, что в заголовке указано, что базовой записью является запись 5009. Счетчик ссылок равен 0, потому что нет имен, указывающих на него.

Читайте также:

Системный файл Имя файла Запись MFT Назначение файла
Главная таблица файлов $Mft 0 Содержит одну запись базового файла для каждого файла и папки на томе NTFS. Если информация о размещении для файла или папки слишком велика и не помещается в одну запись, другие записи файлов также распределяются.
Главная таблица файлов 2 1 Дубликат изображения первых четырех записей MFT. Этот файл гарантирует доступ к MFT в случае сбоя одного сектора.
Файл журнала $LogFile 2< /td> Содержит список шагов транзакции, используемых для восстановления NTFS. Размер файла журнала зависит от размера тома и может достигать 4 МБ. Он используется Windows NT/2000 для восстановления целостности NTFS после сбоя системы.
Volume $Volume 3 Содержит информацию о томе, такую ​​как метка тома и версия тома.
Определения атрибутов $AttrDef 4 Таблица имен атрибутов, номеров и описаний.
Указатель имен корневых файлов $ 5 Корневая папка.
Растровое изображение кластера $Bitmap 6 Представление тома, показывающее, какие кластеры используются.
Загрузочный сектор $Boot 7 Включает BPB, используемый для монтирования тома, и дополнительный код загрузчика начальной загрузки, используемый, если том загрузочный.
Неверный файл кластера $BadClus 8 Содержит плохие кластеры для тома.
Файл безопасности 9 Содержит уникальные дескрипторы безопасности для всех f файлов внутри тома.
Таблица верхнего регистра $Upcase 10 Преобразует символы нижнего регистра в соответствующие Символы Юникода в верхнем регистре.
Файл расширения NTFS $Extend 11 Используется для различных дополнительных расширений, таких как квоты, данные точки повторной обработки и идентификаторы объектов.
12–15 Зарезервировано для будущего использования.