Структура тома с файловой системой NTFS

Структура

Структура тома с файловой системой NTFS - student2.ru

Рис. 1. Структура файловой системы FAT

– Загрузочный сектор

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

– Таблица размещения файлов (File Allocation Table)

Вся область данных диска разделена на кластеры – блоки, размер которых задается при форматировании диска. На дискете, например, размер кластера равен 512-ти байтам. А на современных винчестерах с объемом диска более 32 Гб размер кластера равен 32 Кб. Каждый файл и каталог занимает один или несколько кластеров. Таким образом, образуются цепочки кластеров.

В таблице размещения файлов каждый кластер помечается специальным образом. Размер метки в битах для каждого кластера указывается в названии файловой системы. Т.е. для файловой системы FAT16 размер метки будет равен 16-ти байтам, для FAT32 – 32-м и т.д.

Всего существует три типа меток для кластеров:

  • Свободный кластер – кластер, в который будут записываться новые файлы и каталоги.
  • Занятый кластер – в метке указывается следующий кластер в цепочке. Если цепочка кластеров заканчивается, то кластер помечается особой меткой.
  • BAD-блок – кластер с ошибками доступа. Помечается при форматировании диска, что бы исключить в последующем доступ к нему.

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

– Корневой каталог

Область диска, в котором располагается информация о корневом каталоге. Размер ее ограничен, поэтому в корневом каталоге диска может находиться не более 512-ти файлов и подкаталогов.

– Область данных

Оставшаяся часть раздела, на которой размещается содержимое файлов и каталогов.

NTFS

Файловая система NTFS (New Technology File System) - новая технология

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

За редкими исключениями, с разделами NTFS можно работать напрямую только из Windows NT, хотя и имеются для ряда ОС соответствующие реализа­ции систем управления файлами для чтения файлов из томов NTFS. Так, напри­мер, утилита (драйвер) NTFSDOSпозволяет читать данные NTFS на компьютере, загруженном в режиме MS-DOS. Однако полноценных реализации для работы с NTFS вне системы Windows NT пока нет.

NTFS не поддерживается в широко распространенных ОС Windows 98 и ныне все более часто встречающейся Windows Millennium Edition.

Основные особенности NTFS

· работа на дисках большого объема происходит эффективно (намного эффективнее, чем в FAT);

· имеются средства для ограничения доступа к файлам и катало­гам Þ раз­делы NTFS обеспечивают локальную безопасность как файлов, так и каталогов;

· введен механизм транзакций, при котором осуществляется журналирование файловых операций Þ существенное увеличение надежности;

· сняты многие ограничения на максимальное количество дисковых секто­ров и/или кластеров;

· имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode — 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла в NTFS — 255 символов.

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

MFT (master file table)

MFT (общая таблица файлов) по сути - это каталог всех остальных файлов диска, в том числе и себя самого. Он предназначен для определения расположения файлов.

MFT состоит из записей фиксированного размера. Размер записи MFT (минимум 1 Кб и максимум 4 Кб) оп­ределяется во время форматирования тома.

Каждая запись соответ­ствует какому-либо файлу.

Первые 16 записей но­сят служебный характер и недоступны операционной системе — они называются метафайлами, причем самый первый метафайл — сам MFT.

Эти первые 16 эле­ментов MFT — единственная часть диска, имеющая строго фиксированное поло­жение. Копия этих же 16 записей хранится в середине тома для надежности.

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

Метафайлы носят служебный характер - каждый из них отвечает за какой-либо аспект работы системы. Метафайлы нахо­дятся в корневом каталоге NTFS-тома. Все они начинаются с символа имени “$”, хотя получить какую-либо информацию о них стандартными средствами сложно. В табл. приведены основные известные метафайлы и их назначение.

Таблица. Метафайлы NTFS

Имя метафайла   Назначение метафайла  
$MFT $ Сам Master File Table  
$MFTmirr   Копия первых 16 записей MFT, размещенная посередине тома
$LogFile   Файл поддержки операций журналирования  
$Volume   Служебная информация — метка тома, версия файловой системы и т. д.  
$AttrDef   Список стандартных атрибутов файлов на томе  
$.   Корневой каталог  
$Bitmap   Карта свободного места тома  
$Boot   Загрузочный сектор (если раздел загрузочный)  
$Quota   Файл, в котором записаны права пользователей на использование дискового пространства (этот файл начал работать лишь в Windows 2000 с системой NTFS 5.0)  
$Upcase   Файл — таблица соответствия заглавных и прописных букв в именах файлов. В NTFS имена файлов записываются в Unicode (что составляет 65 тысяч различных символов) и искать большие и малые эквиваленты в данном случае — нетривиальная задача  
     

В соответствующей записи MFT хранится вся информация о файле:

· имя файла,

· размер;

· атрибуты файла;

· положение на диске отдельных фрагментов и т. д.

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

Если файл имеет не очень большой размер, то данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT.

Таким образом, файлы, занимающие сотни байт, обычно не имеют своего “физического” воплощения в основной файловой области - все данные такого файла хранятся в одном месте, в MFT.

Файл в томе с NTFS идентифицируется так называемой файловой ссылкой (File Reference), которая представляется как 64-разрядное число.

Файловая ссылка состоит из

· номера файла, который соответствует номеру записи в MFT,

· и номера последовательности. Этот номер увеличивается всякий раз, когда данный номер в MFT используется повторно, что позволяет файловой системе NTFS выполнять внутренние проверки целостности.

Представление файлов

Каждый файл в NTFS представлен с помощью потоков (streams), то есть у него нет как таковых “просто данных”, а есть потоки.

Один из потоков - это и есть данные файла.

Большинство атрибутов файла - это тоже потоки.

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

Данный подход может эффективно использоваться — например, файлу можно “прилепить” еще один поток, записав в него любые данные.

В Windows 2000 таким образом записана информация об авторе и содержании файла (одна из закладок в свойствах фай­ла, просматриваемых, например, из проводника).

Интересно, что эти дополни­тельные потоки не видны стандартными средствами работы с файлами: наблю­даемый размер файла — это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длины, при сти­рании которого освободится 1 Гбайт свободного места — просто потому, что какая-нибудь хитрая программа или технология “прилепила” к нему дополнитель­ный поток (альтернативные данные) такого большого размера. Но на самом деле в настоящее время потоки практически не используются, так что опасаться по­добных ситуаций не следует, хотя гипотетически они возможны.

На идее потока основан один из новейших вирусов, который был не так давно создан для распространения в среде Windows 2000.

Атрибуты файлов

Стандартные атрибуты для файлов и каталогов в томе NTFS имеют фиксиро­ванные имена и коды типа.

Таблица.Атрибуты файлов в системе NTFS. * отмечены обязательные атрибуты.

Системный атрибут   Описание атрибута  
* Стандартная информация о файле   Традиционные атрибуты Read Only, Hidden, Archive, System, отметки времени, включая время создания или последней модификации, число каталогов, ссылающихся на файл  
Список атрибутов Список атрибутов, из которых состоит файл, и файловая ссылка на файловую запись и MFT, в которой расположен каждый из атрибутов. Последний используется, если файлу необходимо более одной записи в MFT
* Имя файла   Имя файла в символах Unicode. Файл может иметь несколько атрибутов — имен файла, подобно тому как это имеет место в UNIX-системах. Это случается, когда имеется связь POSIX с данным файлом или если у файла есть автоматически сгенерированное имя в формате 8.3  
* Дескриптор защиты   Структура данных защиты (ACL), предохраняющая файл от несанкционированного доступа. Атрибут “дескриптор защиты” определяет, кто владелец файла и кто имеет доступ к нему  
* Данные   Собственно данные файла, его содержимое. В NTFS у файла по умолчанию есть один безымянный атрибут данных, и он может иметь дополнительные именованные атрибуты данных. У каталога нет атрибута данных по умолчанию, но он может иметь необязательные именованные атрибуты данных  
Корень индекса, размещение индекса, битовая карта (только для каталогов)   Атрибуты, используемые для индексов имен файлов в больших каталогах
Расширенные атрибуты HPFS   Атрибуты, используемые для реализации расширенных атрибутов HPFS для подсистемы OS/2 и OS/2-клиентов файл-серверов Windows NT

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

Организация ката­логов

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

Файл каталога разделен на блоки (2 Кб !!!), каждый из которых содержит

· имя файла,

· базовые атрибуты и

· ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога.

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

Внутренняя структура каталога представляет собой бинарное дерево, как в HPFS.

Количество файлов в корневом и некорневом каталогах не ограни­чено.

Средства самовосстановления

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

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

MBR

Master Boot Record (MBR) — это первый сектор (первые 512 байт) устройства хранения данных. MBR - это не партиция, а участок памяти, зарезервированный для загрузчика операционной системы и таблицы разделов диска.

Функция MBR — «переход» в тот раздел жёсткого диска, с которого следует исполнять «дальнейший код» (обычно — загружать ОС). На «стадии MBR» происходит выбор раздела диска, загрузка кода ОС происходит на более поздних этапах алгоритма.

Код загрузчика

После завершения процедуры POST в ОЗУ по адресу 0000:7C00 записывается код загрузчика, после чего ему передаётся управление. Задача загрузчика — проанализировать таблицу разделов жёсткого диска, затем либо передать управление загрузочному коду активного раздела, либо загрузить в RAM ядро операционной системы и передать ему управление.

GPT

(GUID Partition Table, Таблица разделов GUID) — часть спецификации UEFI. UEFI использует GPT так же как BIOS использует MBR.
Главным отличием GPT от MBR, на мой взгляд, являются:

· Количество разделов: MBR поддерживает только 4 раздела. Можно и больше, но только через extended partition, что является просто хаком ограничений. GPT поддерживает до 128 разделов.

· Размер диска: MBR поддерживает диски до 2Тб, в то время как GPT — до 9.4 Зеттабайт (=9.4 × 10^21 байт, или условно 1000 Тб)

· Порядок загрузки: раньше BIOS загружал MBR, и в нем содержались адреса загрузчиков для каждого раздела диска. Теперь UEFI считывает GPT, находит в таблице все разделы типа efi (на них содержатся загрузчики), и подгружает их в память. Разберем это на примере немного позже.

Структура

Структура тома с файловой системой NTFS - student2.ru

Рис. 1. Структура файловой системы FAT

– Загрузочный сектор

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

– Таблица размещения файлов (File Allocation Table)

Вся область данных диска разделена на кластеры – блоки, размер которых задается при форматировании диска. На дискете, например, размер кластера равен 512-ти байтам. А на современных винчестерах с объемом диска более 32 Гб размер кластера равен 32 Кб. Каждый файл и каталог занимает один или несколько кластеров. Таким образом, образуются цепочки кластеров.

В таблице размещения файлов каждый кластер помечается специальным образом. Размер метки в битах для каждого кластера указывается в названии файловой системы. Т.е. для файловой системы FAT16 размер метки будет равен 16-ти байтам, для FAT32 – 32-м и т.д.

Всего существует три типа меток для кластеров:

  • Свободный кластер – кластер, в который будут записываться новые файлы и каталоги.
  • Занятый кластер – в метке указывается следующий кластер в цепочке. Если цепочка кластеров заканчивается, то кластер помечается особой меткой.
  • BAD-блок – кластер с ошибками доступа. Помечается при форматировании диска, что бы исключить в последующем доступ к нему.

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

– Корневой каталог

Область диска, в котором располагается информация о корневом каталоге. Размер ее ограничен, поэтому в корневом каталоге диска может находиться не более 512-ти файлов и подкаталогов.

– Область данных

Оставшаяся часть раздела, на которой размещается содержимое файлов и каталогов.

NTFS

Файловая система NTFS (New Technology File System) - новая технология

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

За редкими исключениями, с разделами NTFS можно работать напрямую только из Windows NT, хотя и имеются для ряда ОС соответствующие реализа­ции систем управления файлами для чтения файлов из томов NTFS. Так, напри­мер, утилита (драйвер) NTFSDOSпозволяет читать данные NTFS на компьютере, загруженном в режиме MS-DOS. Однако полноценных реализации для работы с NTFS вне системы Windows NT пока нет.

NTFS не поддерживается в широко распространенных ОС Windows 98 и ныне все более часто встречающейся Windows Millennium Edition.

Основные особенности NTFS

· работа на дисках большого объема происходит эффективно (намного эффективнее, чем в FAT);

· имеются средства для ограничения доступа к файлам и катало­гам Þ раз­делы NTFS обеспечивают локальную безопасность как файлов, так и каталогов;

· введен механизм транзакций, при котором осуществляется журналирование файловых операций Þ существенное увеличение надежности;

· сняты многие ограничения на максимальное количество дисковых секто­ров и/или кластеров;

· имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode — 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла в NTFS — 255 символов.

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

Структура тома с файловой системой NTFS

Раздел NTFS называется томом (volume). Максимально возможные размеры тома (и размеры файла) составляют 16 Эбайт (экзабайт 2**64).

Замечание. Возможно создание тома, занимающего несколько разделов (отказоустойчивого тома)

Как и мно­гие другие системы, NTFS делит дисковое пространство тома на кластеры — блоки данных, адресуемые как единицы данных. NTFS поддержива­ет размеры кластеров от 512 байт до 64 Кбайт; стандартом же считается кластер размером 2 или 4 Кбайт.

Все дисковое пространство в NTFS делится на две неравные части.


Первые 12 % диска отводятся под так называемую MFT-зону — пространство, которое может занимать, увеличиваясь в размере, главный служебный метафайл MFT.

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

Остальные 88 % тома представляют собой обычное пространство для хранения файлов.

MFT (master file table)

MFT (общая таблица файлов) по сути - это каталог всех остальных файлов диска, в том числе и себя самого. Он предназначен для определения расположения файлов.

MFT состоит из записей фиксированного размера. Размер записи MFT (минимум 1 Кб и максимум 4 Кб) оп­ределяется во время форматирования тома.

Каждая запись соответ­ствует какому-либо файлу.

Первые 16 записей но­сят служебный характер и недоступны операционной системе — они называются метафайлами, причем самый первый метафайл — сам MFT.

Эти первые 16 эле­ментов MFT — единственная часть диска, имеющая строго фиксированное поло­жение. Копия этих же 16 записей хранится в середине тома для надежности.

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

Метафайлы носят служебный характер - каждый из них отвечает за какой-либо аспект работы системы. Метафайлы нахо­дятся в корневом каталоге NTFS-тома. Все они начинаются с символа имени “$”, хотя получить какую-либо информацию о них стандартными средствами сложно. В табл. приведены основные известные метафайлы и их назначение.

Таблица. Метафайлы NTFS

Имя метафайла   Назначение метафайла  
$MFT $ Сам Master File Table  
$MFTmirr   Копия первых 16 записей MFT, размещенная посередине тома
$LogFile   Файл поддержки операций журналирования  
$Volume   Служебная информация — метка тома, версия файловой системы и т. д.  
$AttrDef   Список стандартных атрибутов файлов на томе  
$.   Корневой каталог  
$Bitmap   Карта свободного места тома  
$Boot   Загрузочный сектор (если раздел загрузочный)  
$Quota   Файл, в котором записаны права пользователей на использование дискового пространства (этот файл начал работать лишь в Windows 2000 с системой NTFS 5.0)  
$Upcase   Файл — таблица соответствия заглавных и прописных букв в именах файлов. В NTFS имена файлов записываются в Unicode (что составляет 65 тысяч различных символов) и искать большие и малые эквиваленты в данном случае — нетривиальная задача  
     

В соответствующей записи MFT хранится вся информация о файле:

· имя файла,

· размер;

· атрибуты файла;

· положение на диске отдельных фрагментов и т. д.

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

Если файл имеет не очень большой размер, то данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT.

Таким образом, файлы, занимающие сотни байт, обычно не имеют своего “физического” воплощения в основной файловой области - все данные такого файла хранятся в одном месте, в MFT.

Файл в томе с NTFS идентифицируется так называемой файловой ссылкой (File Reference), которая представляется как 64-разрядное число.

Файловая ссылка состоит из

· номера файла, который соответствует номеру записи в MFT,

· и номера последовательности. Этот номер увеличивается всякий раз, когда данный номер в MFT используется повторно, что позволяет файловой системе NTFS выполнять внутренние проверки целостности.

Представление файлов

Каждый файл в NTFS представлен с помощью потоков (streams), то есть у него нет как таковых “просто данных”, а есть потоки.

Один из потоков - это и есть данные файла.

Большинство атрибутов файла - это тоже потоки.

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

Данный подход может эффективно использоваться — например, файлу можно “прилепить” еще один поток, записав в него любые данные.

В Windows 2000 таким образом записана информация об авторе и содержании файла (одна из закладок в свойствах фай­ла, просматриваемых, например, из проводника).

Интересно, что эти дополни­тельные потоки не видны стандартными средствами работы с файлами: наблю­даемый размер файла — это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длины, при сти­рании которого освободится 1 Гбайт свободного места — просто потому, что какая-нибудь хитрая программа или технология “прилепила” к нему дополнитель­ный поток (альтернативные данные) такого большого размера. Но на самом деле в настоящее время потоки практически не используются, так что опасаться по­добных ситуаций не следует, хотя гипотетически они возможны.

На идее потока основан один из новейших вирусов, который был не так давно создан для распространения в среде Windows 2000.

Атрибуты файлов

Стандартные атрибуты для файлов и каталогов в томе NTFS имеют фиксиро­ванные имена и коды типа.

Таблица.Атрибуты файлов в системе NTFS. * отмечены обязательные атрибуты.

Системный атрибут   Описание атрибута  
* Стандартная информация о файле   Традиционные атрибуты Read Only, Hidden, Archive, System, отметки времени, включая время создания или последней модификации, число каталогов, ссылающихся на файл  
Список атрибутов Список атрибутов, из которых состоит файл, и файловая ссылка на файловую запись и MFT, в которой расположен каждый из атрибутов. Последний используется, если файлу необходимо более одной записи в MFT
* Имя файла   Имя файла в символах Unicode. Файл может иметь несколько атрибутов — имен файла, подобно тому как это имеет место в UNIX-системах. Это случается, когда имеется связь POSIX с данным файлом или если у файла есть автоматически сгенерированное имя в формате 8.3  
* Дескриптор защиты   Структура данных защиты (ACL), предохраняющая файл от несанкционированного доступа. Атрибут “дескриптор защиты” определяет, кто владелец файла и кто имеет доступ к нему  
* Данные   Собственно данные файла, его содержимое. В NTFS у файла по умолчанию есть один безымянный атрибут данных, и он может иметь дополнительные именованные атрибуты данных. У каталога нет атрибута данных по умолчанию, но он может иметь необязательные именованные атрибуты данных  
Корень индекса, размещение индекса, битовая карта (только для каталогов)   Атрибуты, используемые для индексов имен файлов в больших каталогах
Расширенные атрибуты HPFS   Атрибуты, используемые для реализации расширенных атрибутов HPFS для подсистемы OS/2 и OS/2-клиентов файл-серверов Windows NT

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

Организация ката­логов

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

Файл каталога разделен на блоки (2 Кб !!!), каждый из которых содержит

· имя файла,

· базовые атрибуты и

· ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога.

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

Внутренняя структура каталога представляет собой бинарное дерево, как в HPFS.

Количество файлов в корневом и некорневом каталогах не ограни­чено.

Наши рекомендации