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

Так, имя файла MFT –– $Mft. Остальные файлы NTFS-тома являются обычными файлами и каталогами. Обычно каждая запись MFT соответствует отдельному файлу. Но если у фай­ла много атрибутов или он сильно фрагментирован, для него может понадо­биться более одной записи. Тогда первая запись MFT, хранящая адреса других записей, называется базовой (base file record).

Вторая запись указывает на файл в середине диска ($MftMirr), который называется зеркальной копией MFT и содержит копию первых нескольких строк MFT. Если по каким-либо причинам считать часть MFT не удастся, для поиска файлов метаданных будет использована именно эта копия MFT.

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

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

NTFS регистрирует распределение дискового пространства в файле битовой карты (bitmap file) с именем $Bitmap. Атрибут данных для файла битовой кар­ты содержит битовую карту, каждый бит которой представляет кластер тома и сообщает, свободен кластер или выделен.

Файл защиты (security file) с именем $Secure хранит базу данных дескрип­торов защиты, действующих в пределах тома. Дескрипторы защиты файлов и каталогов NTFS можно настраивать индивидуально, но для экономии места хранит настройки дескрипторов защиты в общем файле, который позволяет файлам и каталогам с одинаковыми параметрами защиты ссылаться на один и тот же дескриптор защиты. Такая оптимизация даст существенную экономию в большинстве сред, потому что в них целые деревья каталогов имеют одинако­вые параметры защиты.

Другой системный файл, загрузочный (boot file), с именем $Boot хранит код начальной загрузки Windows 2000. Для успешного запуска системы код началь­ной загрузки должен находиться на диске в определенном месте. При форма­тировании команда format определяет это место в виде файла, создавая для него запись в MFT. При этом NTFS следует своим правилам, согласно которым все данные хранятся на диске в виде файлов. Загрузочный файл, как и файлы метаданных NTFS, может быть защищен индивидуальным дескриптором защиты, в такой модели «на диске есть только файлы» код начальной загрузки может быть изменен путем обычного файлового ввода-вывода, хотя загрузочный файл за­щищен от редактирования.

NTFS поддерживает файл плохих кластеров (bad-cluster file) с именем $BadClus, в котором регистрируются все сбойные участки дискового тома, и файл тома (volume file) с именем $Volume, который содержит имя тома, версию NTFS, под которую отформатирован том, и бит, устанавливаемый при каком-либо повреждении диска. Если этот бит установлен, диск должен быть восста­новлен утилитой Chkdsk.

Файл сопоставления имен с буквами в верхнем регис­тре (uppercase file) с именем $UpCase включает таблицу трансляции букв меж­ду верхним и нижним регистрами. NTFS также поддерживает файл, содержащий таблицу определения атрибутов (attribute definition table), с именем $AttrDef; В нем определяютcя типы атрибутов, поддерживаемые томом, и указывается, являются ли они индексируемыми, следует ли их восстанавливать в ходе опера­ции восстановления системы и т. д.

Некоторые файлы метаданных NTFS хранит в каталоге расширенных мета­данных $Extend, в том числе помещая туда файл идентификаторов объектов ($ObjId), файл квот ($Quota), файл журнала регистрации изменений ($UsnJrnl) и файл точек повторного разбора ($Reparse). В этих файлах содержится ин­формация, относящаяся к дополнительным возможностям NTFS. Файл иденти­фикаторов объектов хранит идентификаторы объектов «файл», файл квот – значения квот и информацию о поведении томов, на которых используются квоты, файл точек повторного разбора – список файлов и каталогов, включа­ющих данные точек повторного разбора, а в файле журнала изменений регис­трируются изменения файлов и каталогов.

36. Генерация имен файлов MS DOS в NTFS.

Поскольку NTFS использует набор символов Unicode для имен файлов, существует возможность задействования нескольких “запрещенных” символов, которые MS-DOS не может читать в имени файла. Для генерации короткого имени файла в стиле MS-DOS, NTFS удаляет все эти символы и любые пробелы из длинного имени файла. Так как имя файла в MS-DOS может иметь только одну точку, NTFS также удаляет все дополнительные точки из имени файла. Далее, в случае необходимости NTFS усекает имя файла до шести символов и добавляет тильду (~) и номер.

Например, к каждому недублированному имени файла добавляется -1. Повторяющиеся имена файлов заканчиваются символами ~2, ~3 и т. д. Расширение имени файла усекается до трех или меньшего количества символов. Наконец, при отображении имени файла в командной строке NTFS транслирует все символы в имени файла и расширении к верхнему регистру (File Manager отображает эти имена файла в нижнем регистре).

Windows NT 3.5 использует несколько другой метод для создания коротких имен файлов для случая, когда имеется пять или более файлов, которые привели бы к двойным коротким именам файла. Для пятого и последующих файлов Windows NT использует только первые два символа от длинного имени файла и далее специальной математической операцией (функция от длинного имени) генерирует следующие уникальные четыре символа короткого имени файла; после этого к результату добавляется ~5 (или другой номер в случае необходимости избежания двойного имени файла). Такой метод обеспечивает в основном повышенную эффективность для случая, когда Windows NT должна создавать короткие имена файлов для большого количества файлов с похожими длинными именами. Windows NTиспользует этот метод создания коротких имен для томов FAT и NTFS.

По умолчанию, Windows NT 3.5 поддерживает имена файлов в формате MS-DOS на всех томах NTFS. Для повышения эффективности работы на томах с большим количеством длинных похожих имен можно запретить эту возможность для всех томов. Для отключения поддержки коротких имен файлов на всех томах NTFS необходимо установить в 1 значение NTfsDisable8dot3NameCreation следующего элемента реестра:

HKEY_LOCAL_MACHINESystemCurrentControlSetControlFileSystem

Windows NT не генерирует коротких имен для файлов, созданных приложениями POSIX в разделе NTFS. Это означает, что приложения MS-DOS и Windows З.х не смогут работать с подобными именами, если эти имена не удовлетворяют условию “восемь плюс три”. В случае необходимости работы из приложений MS-DOS или Windows с файлами, которые созданы приложениями POSIX, следует убедиться, что использованы стандартные имена MS-DOS.

37. Структура главной файловой таблицы (MFT). Атрибуты файла NTFS. Заголовок атрибута, значение атрибута. Резидентные и нерезидентные атрибуты.

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