что такое mft и его структура в файловой системе ntfs файлы и потоки

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

NTFS (New Technology File System)

NTFS

264 clusters − 1 cluster (format);

256 TiB − 64 KiB (implementation)/>

255 UTF-16 code units;

Per-file, DESX (Windows 2000 onward), Triple DES (Windows XP onward),

AES (Windows XP Service Pack 1, Windows Server 2003 onward)

Полное названиеNew Technology File System
Содержимое каталогаB+ дерево
Распределение файловBitmap [1]
Limits
Макс. размер тома
Макс. размер файла1 EiB (8 TiB on 32 bit systems)
Макс. количество файлов4,294,967,295 (232-1)
Макс. длина имени файла
Транспорантное шифрованиеNo
Другие
Операционная системаLinux

NTFS (англ. New Technology File System — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT фирмы Microsoft. NTFS поддерживает хранение метаданных. С целью улучшения производительности, надёжности и эффективности использования дискового пространства для хранения информации о файлах в NTFS используются специализированные структуры данных. Информация о файлах хранится в главной файловой таблице — MFT (Master File Table). NTFS поддерживает разграничение доступа к данным для различных пользователей и групп пользователей (списки контроля доступа — англ. access control lists, ACL), а также позволяет назначать дисковые квоты (ограничения на максимальный объём дискового пространства, занимаемый файлами тех или иных пользователей). Для повышения надёжности файловой системы в NTFS используется система журналирования USN. Для NTFS размер кластера по умолчанию составляет от 512 байт до 64 КиБ в зависимости от размера тома и версии ОС. [2]

Содержание

История

Файловая система NTFS заменила файловую систему FAT, использовавшуюся в ОС MS-DOS и ОС Windows.

Файловая система NTFS разработана на основе файловой системы HPFS. HPFS (англ. High Performance File System ) — высокопроизводительная файловая система, разработку которой вела фирма Microsoft совместно с фирмой IBM для операционной системы OS/2. Впоследствии разработчики из фирмы Microsoft добавили в HPFS-квотирование, журналируемость, разграничение доступа и аудит, назвали файловую систему NTFS. NTFS в значительной степени утратила присущую прародительнице (HPFS) весьма высокую производительность файловых операций.

Возможности NTFS

Файловая система NTFS разрабатывалась Microsoft в начале 1990 х гг. как основная файловая система для серверных версий операционных систем Windows. NTFS была представлена в 1993 году в операционной системе Windows NT 3.1. В настоящее время NTFS рассматривается в качестве предпочтительной файловой системы как для серверных, так и для клиентских версий Windows. В NTFS используются 64 разрядные идентификаторы кластеров, поэтому теоретически том NTFS может содержать 264 кластеров (16 ЭБ3 ). Однако текущие реализации в Windows поддерживают только 32 разрядную адресацию кластеров, что при размере кластера максимум 64 КБ (216 байт) позволяет NTFS тому достигать размера до 256 ТБ:

Для томов, больших 4 ГБ, при форматировании Windows предлагает размер кластера по умолчанию 4 КБ.

Перечислим некоторые возможности NTFS:

Источник

Обзор файловой системы NTFS

Область применения: Windows Server 2022, Windows 10, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008

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

Дополнительные сведения о функциях см. в этом разделе далее в этой статье. См. сведения о новой системе Resilient File System (ReFS).

повышенная надежность;

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

NTFS непрерывно отслеживает и исправляет временные проблемы повреждения в фоновом режиме, не переводя том в автономный режим (эта функция, введенная в Windows Server 2008, известна как NTFS с самовосстановлением). При значительных проблемах с повреждением программа Chkdsk в Windows Server 2012 и более поздних версиях сканирует и анализирует диск, пока том подключен, ограничивая время автономной работы временем, необходимым для восстановления целостности данных в томе. Когда NTFS используется с CSV, простои не требуются. Дополнительные сведения см. в статье NTFS Health and Chkdsk (Работоспособность NTFS и Chkdsk).

Повышенная безопасность

Безопасность на основе списка управления доступом (ACL) для файлов и папок. NTFS позволяет устанавливать разрешения для файла или папки, указывать группы и пользователей, чей доступ требуется ограничить или разрешить, и выбрать тип доступа.

Поддержка шифрования диска BitLocker. Шифрование диска BitLocker обеспечивает дополнительную безопасность важных системных сведений и других данных, хранящихся на томах NTFS. Начиная с Windows Server 2012 R2 и Windows 8.1, BitLocker поддерживает шифрование устройств на компьютерах с архитектурой x86 и x64 с доверенным платформенным модулем, который поддерживает режим ожидания с подключением (ранее доступный только на устройствах Windows RT). Шифрование устройств помогает защитить данные на компьютерах под управлением Windows и помогает предотвратить доступ пользователей-злоумышленников к системным файлам, которые они используют для обнаружения пароля, или к диску путем физического удаления его с компьютера и установки в другой компьютер. Дополнительные сведения см. в статье What’s New in BitLocker (Новые возможности BitLocker).

Поддержка больших томов

NTFS может поддерживать тома размером до 8 ПБ в версии Windows Server 2019 и выше и Windows 10 версии 1709 и выше (более ранние версии поддерживают до 256 ТБ). Поддерживаемые размеры томов зависят от размера кластеров и их количества. Для кластеров (2 32 –1) (максимальное число кластеров, поддерживаемое NTFS) поддерживаются следующие размеры томов и файлов.

Размер кластераСамый крупный том и файл
4 КБ (размер по умолчанию)16 ТБ
8 КБ32 ТБ
16 КБ64 ТБ
32 КБ128 ТБ
64 КБ (предыдущий максимальный размер)256 ТБ
128 КБ512 ТБ
256 KB1 ПБ
512 КБ2 ПБ
1024 КБ4 ПБ
2048 КБ (максимальный размер)8 ПБ

Обратите внимание, что при попытке подключить том с размером кластера, который превышает поддерживаемый максимум используемой версии Windows, вы получите ошибку STATUS_UNRECOGNIZED_VOLUME.

Службы и приложения могут накладывать дополнительные ограничения на размер файлов и томов. Например, ограничение размера тома составляет 64 ТБ, если вы используете функцию предыдущих версий или приложение резервного копирования, которое использует моментальные снимки службы теневого копирования томов (и не используете сеть SAN или RAID). Тем не менее, может потребоваться использовать тома меньшего размера в зависимости от рабочей нагрузки и производительности хранилища.

Требования к форматированию для больших файлов

Есть новые рекомендации по форматированию томов в отношении правильного расширения больших файлов VHDX. В ходе форматирования томов, которые будут использоваться при дедупликации данных, или при размещении очень больших файлов, таких как файлы VHDX размером больше 1 ТБ, используйте в Windows PowerShell командлет Format-Volume со следующими параметрами.

ПараметрОписание
-AllocationUnitSize 64KBЗадает размер единицы распределения NTFS 64 КБ.
-UseLargeFRSВключает поддержку сегментов записей больших файлов (FRS). Это необходимо для увеличения количества экстентов, допустимых для каждого файла в томе. Для больших записей FRS ограничение увеличивается с примерно 1 500 000 до 6 000 000 экстентов.

Например, следующий командлет форматирует диск D как том NTFS с включенными FRS и размером единицы распределения 64 КБ.

Можно также использовать команду format. В системной командной строке введите следующую команду, где /L форматирует большой том FRS, а /A:64k задает размер единицы распределения 64 КБ:

Максимальная длина имени файла и пути к файлу

NTFS поддерживает длинные имена файлов и пути увеличенной длины со следующими максимальными значениями:

Поддержка длинных имен файлов с обратной совместимостью. NTFS допускает длинные имена файлов, сохраняя псевдоним 8.3 на диске (в кодировке Юникод), чтобы обеспечить совместимость с файловыми системами, которые накладывают ограничение 8.3 на имена и расширения файлов. При необходимости (по соображениям производительности) можно выборочно отключить именование 8.3 на отдельных томах NTFS в Windows Server 2008 R2, Windows 8 и более поздних версиях операционной системы Windows. В Windows Server 2008 R2 и более поздних версий короткие имена по умолчанию отключены при форматировании тома с помощью операционной системы. Для совместимости приложений на системном томе все еще включены короткие имена.

Поддержка путей увеличенной длины. Многие функции API Windows поддерживают версии Юникода, позволяющие использовать расширенный путь длиной приблизительно 32 767 символов, а не ограниченный по длине в 260 символов, что определяется параметром MAX_PATH. Подробные требования к именам файлов и формату путей, а также рекомендации по реализации путей увеличенной длины см. в статье Naming Files, Paths, and Namespaces (Имена файлов, пути и пространства имен).

Кластерное хранилище. При использовании в отказоустойчивых кластерах NTFS поддерживает постоянно доступные тома, к которым могут одновременно обращаться несколько узлов кластера при использовании совместно с файловой системой CSV. Дополнительные сведения см. в статье Use Cluster Shared Volumes in a Failover Cluster (Использование общих томов кластера в отказоустойчивом кластере).

Динамическое выделение емкости

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

Источник

NTFS изнутри. Как устроена файловая таблица MFT в Windows

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потоки

Содержание статьи

Стандарт файловой системы NTFS версии 3.1 появился в 2001 году с выходом на рынок Windows XP и с тех пор не претерпел фундаментальных изменений. В Windows 10 также используется NTFS v3.1. Архитектуру и особенности внутреннего устройства этой файловой системы Крис Касперски подробно описал в своей книге «Восстановление данных», которая сейчас готовится к переизданию. Мы публикуем отрывок из этой книги, где Крис рассказывает о том, что представляет собой NTFS изнутри.

NTFS с высоты птичьего полета

Основным структурным элементом всякой файловой системы является том (volume), в случае с FAT совпадающий с разделом (partition). NTFS поддерживает тома, состоящие из нескольких разделов (см. рис.). Будем для простоты считать, что том представляет собой отформатированный раздел (то есть раздел, содержащий служебные структуры файловой системы).

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

Классическое определение, данное в учебниках информатики, отождествляет файл с именованной записью на диске. Большинство файловых систем добавляет к этому понятие атрибута (attribute) — некоторой вспомогательной характеристики, описывающей время создания, права доступа и так далее. В NTFS имя файла, данные файла и его атрибуты полностью уравнены в правах. Иначе говоря, всякий файл NTFS представляет собой совокупность атрибутов, каждый из которых хранится как отдельный поток байтов. Поэтому, во избежание путаницы, атрибуты, хранящие данные файла, часто называют потоками (streams).

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потоки

Крис Касперски

Известный российский хакер. Легенда ][, ex-редактор ВЗЛОМа. Также известен под псевдонимами мыщъх, nezumi (яп. 鼠, мышь), n2k, elraton, souriz, tikus, muss, farah, jardon, KPNC.

Источник

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

Основные понятия

Файловая система ( file system ) – способ организации данных в виде файлов на устройствах внешней памяти (жестких и оптических дисках, устройствах флеш-памяти и т. п.).

Файловая система должна обеспечивать:

Windows поддерживает несколько файловых систем для различных внешних устройств:

Раздел ( partition ) – непрерывная часть жесткого диска. Диск может содержать несколько разделов.

Том ( volume ) или логический диск (logical disk ) – область внешней памяти, с которой операционная система работает как с единым целым. Тома бывают простые и составные.

Простой том (simple volume ) – том, состоящий из одного раздела.

Составной том (multipartition volume ) – том, состоящий из нескольких разделов (необязательно на одном диске).

Понятия раздела и простого тома отличаются: во первых, разделы формируются, в основном, только на жестких дисках, а тома создаются и на других устройствах внешней памяти (например на оптических дисках и устройствах флеш памяти), во вторых, понятие «раздел» связано с физическим устройством, а понятие «том» – с логическим представлением внешней памяти.

При записи на диск файл всегда будет занимать целое число кластеров. Например, файл размером 100 байт в файловой системе с размером кластера 4 КБ будет занимать ровно 4 КБ.

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

Возможности NTFS

В NTFS используются 64 разрядные идентификаторы кластеров, поэтому теоретически том NTFS может содержать 264 кластеров (16 ЭБ 3 2 10 байт = 1 килобайт (КБ), 2 20 байт = 1 мегабайт (МБ), 2 30 байт = 1 гигабайт (ГБ), 2 40 байт = 1 терабайт (ТБ), 2 50 байт = 1 петабайт (ПБ), 2 60 байт = 1 экзабайт (ЭБ), 2 70 байт = 1 зеттабайт (ЗБ). ). Однако текущие реализации в Windows поддерживают только 32 разрядную адресацию кластеров, что при размере кластера максимум 64 КБ (216 байт ) позволяет NTFS тому достигать размера до 256 ТБ:

2 32 * 2 16 байт = 2 48 байт = 2 8 * 2 40 байт = 256 ТБ.

Для томов, больших 4 ГБ, при форматировании Windows предлагает размер кластера по умолчанию 4 КБ.

Перечислим некоторые возможности NTFS [5, стр. 761]:

Структура NTFS

Структура тома NTFS представлена на рис.17.1.

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потоки

Остальное место на томе NTFS отводится под файлы – системные и пользовательские.

Рассмотрим более подробно структуру MFT (рис.17.2).

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потоки

Перечислим следующие несколько записей в таблице MFT и кратко опишем назначение соответствующих системных файлов:

Источник

Устройство файловой системы NTFS

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потоки

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

Стандарт файловой системы NTFS версии 3.1 появился в 2001 году с выходом на рынок Windows XP и с тех пор не претерпел фундаментальных изменений. В Windows 10 также используется NTFS v3.1. Архитектуру и особенности внутреннего устройства этой файловой системы Крис Касперски подробно описал в своей книге «Восстановление данных», которая сейчас готовится к переизданию. Мы публикуем отрывок из этой книги, где Крис рассказывает о том, что представляет собой NTFS изнутри.

NTFS с высоты птичьего полета

Основным структурным элементом всякой файловой системы является том (volume), в случае с FAT совпадающий с разделом (partition). NTFS поддерживает тома, состоящие из нескольких разделов (см. рис.). Будем для простоты считать, что том представляет собой отформатированный раздел (то есть раздел, содержащий служебные структуры файловой системы).

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потокиУстройство NTFS. Обычный (а) и распределенный (б) тома

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

Классическое определение, данное в учебниках информатики, отождествляет файл с именованной записью на диске. Большинство файловых систем добавляет к этому понятие атрибута (attribute) — некоторой вспомогательной характеристики, описывающей время создания, права доступа и т. д. В NTFS имя файла, данные файла и его атрибуты полностью уравнены в правах. Иначе говоря, всякий файл NTFS представляет собой совокупность атрибутов, каждый из которых хранится как отдельный поток байтов. Поэтому, во избежание путаницы, атрибуты, хранящие данные файла, часто называют потоками (streams).

Главная файловая таблица

что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть фото что такое mft и его структура в файловой системе ntfs файлы и потоки. Смотреть картинку что такое mft и его структура в файловой системе ntfs файлы и потоки. Картинка про что такое mft и его структура в файловой системе ntfs файлы и потоки. Фото что такое mft и его структура в файловой системе ntfs файлы и потокиУстройство NTFS. Структура тома, отформатированного под NTFS

СмещениеРазмер (байт)Описание
00h6Индекс файловой записи (FILE record number), отсчитываемый от нуля
06h2Номер последовательности (sequence number)

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

Записи с 12-й по 15-ю помечены как используемые, в то время как в действительности они пусты. Как несложно догадаться, они зарезервированы для использования в будущем. Записи с 16-й по 23-ю не задействованы и честно помечены как неиспользуемые.

Файловые записи

Если реальная длина атрибутов меньше размеров файловой записи, то ее «хвост» просто не используется. Если же атрибуты не умещаются в отведенное им пространство, создается дополнительная файловая запись (extra FILE Record), ссылающаяся на свою предшественницу. Так выглядит структура файловой записи:

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

Длина файловой записи хранится в двух полях. Тридцатидвухразрядное поле реального размера (real size), находящееся по смещению 18h байт от начала сектора, содержит совокупный размер заголовка, всех его атрибутов и маркера конца, округленный по 8-байтной границе. Тридцатидвухразрядное поле выделенного размера (allocated size), находящееся по смещению 1Сh байт от начала сектора, содержит действительный размер файловой записи в байтах, округленный по размеру сектора. Документация утверждает, что выделенный размер должен быть кратен размеру кластера, но на практике это не так. Например, на моей машине длина поля выделенного размера равна четверти кластера.

16-разрядное поле флагов, находящееся по смещению 16h байт от начала сектора, в подавляющем большинстве случаев принимает одно из следующих трех значений: 00h — данная файловая запись не используется или ассоциированный с ней файл или каталог удален, 01h — файловая запись используется и описывает файл, 02h — файловая запись используется и описывает каталог.

Последовательность обновления

Основное назначение последовательностей обновления — защита от «обрыва записи». Если в процессе записи сектора на диск исчезнет питающее напряжение, может случиться так, что часть файловой записи будет записана успешно, а другая часть сохранит прежнее содержимое (файловая запись, как мы помним, обычно состоит из двух секторов). После восстановления питания драйвер файловой системы не может уверенно определить, была ли файловая запись сохранена целиком. Вот тут-то последовательности обновления и выручают! При каждой перезаписи сектора последовательность обновления увеличивается на единицу. Потому, если произошел обрыв записи, значение последовательности обновления, находящейся в заголовке файловой записи, не совпадет с последовательностью обновления, расположенной в конце сектора.

Атрибуты

Структурно всякий атрибут состоит из атрибутного заголовка (attribute header) и тела атрибута (attribute body). Заголовок атрибута всегда хранится в файловой записи, расположенной внутри MFT. Тела резидентных атрибутов хранятся там же. Нерезидентные атрибуты хранят свое тело вне MFT, в одном или нескольких кластерах, перечисленных в заголовке данного атрибута в специальном списке. Если 8-разрядное поле, расположенное по смещению 08h байт от начала атрибутного заголовка, равно нулю, то атрибут считается резидентным, а если единице, то атрибут нерезидентен. Любые другие значения недопустимы.

Следующие четыре байта заголовка содержат длину атрибута, выражаемую в байтах. Длина нерезидентного атрибута равна сумме длин его тела и заголовка, а длина резидентного атрибута равна длине его заголовка. Если к смещению атрибута добавить его длину, мы получим указатель на следующий атрибут (или маркер конца, если текущий атрибут — последний в цепочке).

Длина тела резидентных атрибутов, выраженная в байтах, хранится в 32-разрядном поле, расположенном по смещению 10h байт от начала атрибутного заголовка. 16-разрядное поле, следующее за его концом, хранит смещение резидентного тела, отсчитываемое от начала атрибутного заголовка. С нерезидентными атрибутами в этом плане все намного сложнее, и для хранения длины их тела используется множество полей. Реальный размер тела атрибута (real size of attribute), выраженный в байтах, хранится в 64-разрядном поле, находящемся по смещению 30h байт от начала атрибутного заголовка. Следующее за ним 64-разрядное поле хранит инициализированный размер потока (initialized data size of the stream), выраженный в байтах. Судя по всему, инициализированный размер потока всегда равен реальному размеру тела атрибута. 64-разрядное поле, расположенное по смещению 28h байт от начала атрибутного заголовка, хранит выделенный размер (allocated size of attribute), выраженный в байтах и равный реальному размеру тела атрибута, округленному до размера кластера (в большую сторону).

Каждый атрибут имеет свой собственный идентификатор (attribute ID), уникальный для данной файловой записи и хранящийся в 16-разрядном поле, расположенном по смещению 0Eh от начала атрибутного заголовка.

Если атрибут имеет имя (attribute Name), то 16-разрядное поле, расположенное по смещению 0Ah байт от атрибутного заголовка, содержит указатель на него. Для безымянных атрибутов оно равно нулю (большинство атрибутов имен не имеют). Имя атрибута хранится в атрибутном заголовке в формате Unicode, а его длина определяется 8-разрядным полем, расположенным по смещению 09h байт от начала атрибутного заголовка. Если тело атрибута сжато, зашифровано или разрежено, 16-разрядное поле флагов, расположенное по смещению 0Ch байт от начала атрибутного заголовка, не равно нулю.

Типы атрибутов

При каких обстоятельствах атрибуты не умещаются в одной файловой записи? Это может произойти в следующих случаях:

Списки отрезков

Тела нерезидентных атрибутов хранятся на диске в одной или нескольких кластерных цепочках, называемых отрезками (runs). Отрезком называется последовательность смежных кластеров, характеризующаяся номером начального кластера и длиной. Совокупность отрезков называется списком (run-list или data run).

Внутренний формат представления списков не то чтобы сложен, но простым его тоже не назовешь. Для экономии места длина отрезка и номер начального кластера хранятся в полях переменной длины. Если размер отрезка умещается в байт (т. е. его значение не превышает 255), то он займет один байт. По аналогии, если размер отрезка требует для своего представления двойного слова, то он займет двойное слово.

Список отрезков представляет собой массив структур, каждая из которых описывает характеристики «своего» отрезка. В конце списка находится завершающий ноль. Первый байт структуры состоит из двух нибблов: младший задает длину поля начального кластера отрезка (условно обозначаемого буквой F ), а старший — количество кластеров в отрезке ( L ). Затем идет поле длины отрезка. В зависимости от значения L оно может занимать от одного до восьми байт (поля большей длины недопустимы). Первый байт поля стартового кластера файла расположен по смещению 1 + L байт от начала структуры (что соответствует 2+2*L нибблам). Вот как выглядит структура одного элемента списка отрезков.

Смещение в нибблахРазмер в нибблахОписание
01Размер поля длины (L)
11Размер поля начального кластера (S)
22*LКоличество кластеров в отрезке
2+2*L2*SНомер начального кластера отрезка

Начиная с версии 3.0 NTFS поддерживает разреженные (sparse) атрибуты, т. е. такие атрибуты, которые не записывают на диск кластеры, содержащие одни нули. При этом поле номера начального кластера отрезка может быть равным нулю, что означает, что данному отрезку не выделен никакой кластер. Поле длины содержит количество кластеров, заполненных нулями.

Назначение служебных файлов

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

Назначение основных метафайлов NTFS

Заключение

Мы рассмотрели общую структуру NTFS версии 3.1, которая используется начиная с Windows XP и заканчивая Windows Server 2019, включая, конечно же, Windows 10. Эта информация поможет тебе лучше понять, как Windows хранит файлы, а также может пригодиться в процессе восстановления поврежденных данных. Конечно же, подробное описание архитектуры NTFS может занять отдельную и весьма объемную книгу (которых, кстати, существует немало), но за подробностями ты всегда можешь обратиться к технической документации.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *