Копия первых 16 записей MFT, размещенная посередине
$LogFile
Файл поддержки журналирования
$Volume
Служебная информация - метка тома, версия файловой системы и т.д.
$AttrDef
Список стандартных атрибутов на томе
$
Корневой каталог
$Bitmap
Карта свободного места
$Boot
Загрузочный сектор (если раздел загрузочный)
$Quota
Файл, в котором записаны права пользователей на использование дискового пространства (начал работать лишь в NT5)
$Upcase
Файл - таблица соответствия заглавных прописных букв в именах файлов на текущем томе
Если в FAT физическое повреждение самой области FAT, является фатальным для функционирования всего диска, то NTFS может сместить и даже фрагментировать все свои служебные области, обходя любые неисправности поверхности, кроме первых 16 элементов MFT.
Метафайлы находятся в корневом каталоге тома NTFS, их имена начинаются с символа $ и получить какую либо информацию о них стандартными средствами сложно.
Каждая запись MFT содержит:
- имя файла, размер, положение на диске отдельных фрагментов и т.д.
Если для информации не хватает 1 записи MFT, то используется несколько записей, причём необязательно последовательных. Если файл имеет не очень большой размер, то данные хранятся, в соответствующей записи таблицы в оставшемся от служебных данных месте, у таких файлов нет своего физического воплощения в основной файловой области.
Каждый файл на NTFS каждый файл на NTFS имеет несколько абстрактное строение - у него нет данных как таковых, а есть потоки.
Один из потоков и носит привычный смысл - данные файла. Большинство атрибутов файла, тоже потоки. Имя файла может содержать любые символы включая полный набор национальных алфавитов, так как данные представлены в Unicode - 16-битным представлением, который дает 65 535 разных символов. Максимальная длина имени файла 255 символов.
Каталоги.
Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске.
Файл каталога поделён на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Внутренняя структура каталога, представляет собой бинарное дерево, аналогичное дерево в файловой системе HPFS.
Бинарное дерево располагает данные таким образом, чтобы поиск файла осуществлялся более быстрым способом - с помощью получения двухзначных ответов на вопрос о положении файла. Начинается поиск со среднего элемента, а дальше определяется, где относительно данного элемента находится искомое имя - выше или ниже.
Журналирование.
NTFS - отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция - действие совершаемое целиком и корректно или не совершаемое вообще. У NTFS просто не бывает промежуточных состояний. Если во время записи данных на диск выясняется физическое повреждения поверхности, транзакция записи откладывается целиком и система осознаёт, что запись не произведена, место помечается как сбойное и начинается новая транзакция - механизм аварийного замещения секторов.
Если во время записи данных на диск, отключается питание и система перезагружается и неясно на какой фазе остановилась запись, в этом случае на помощь приходит журнал транзакции $LogFile в котором система пометила своё желание писать на диск. При перезагрузке этот файл изучается на предмет наличия незавершённых транзакций которые были прерваны аварией и результат которых непредсказуем. Все эти транзакции отменяются - в место в которое осуществлялась запись помечается как свободное, все элементы MFT приводятся в состояние в котором они были до сбоя и система в целом остаётся стабильной - гарантирует корректность файловой системы, а не данных, т.е. журналируются все логические операции.
Для ускорения файловых операций вынуждено использовать кэширование - отложенная запись, при этом данные предназначены для записи на диск некоторое время сохраняются в кэше, и лишь в других от занятий время сохраняются физически, отложенная запись существенно повышает эффективность дисковых операций, так как такое кэширование группирует множество операций в одну. При попытке начать журналирование операции, в лог тут же записывается намерение, это случается без задержек, на этом этапе отложенная запись не работает. Единственная задерженная операция, работа которой несколько отличается от простой записи.
Система создает через определенные промежутки времени создает контрольный точки. Через несколько секунд система в обязательном порядке сбрасывает абсолютно все задержанные операции на диск, делается простейшая запись - контрольная точка, которая говорит о том, что все предыдущие операции, как на логическом так и на физическом, такой режим работы обеспечивает корректную работу журналирования и практически не приводит к замедлению работы.
Для того чтобы NTFS могла обеспечить полную восстанавливаемость логических структур, необходимо:
1) Жесткий диск в штатном режиме должен записать именно то что нужно, в случае если система имеет не надежный шлейф или контроллер, это приводит к сбою NTFS. Диск должен работать в режиме UDMA обеспечивающий контроль и восстановление ошибок на участке контроллер - диск. 2) Жесткий диск в случае аварии, отключения питания или получения от контроллера сигнала сброс 3) Жесткий диск должен осуществить запись данных отправленных с флагом "не кэшировать” например метафайлы 4) Жесткий диск обязан обеспечить чтение именно тех данных, которые были записаны, иначе ошибка