Первые 12 записей в MFT всегда занимают служебные метафайлы: >$MFT
(собственно, сам файл >$MFT
), >$MFTMirr
(зеркало >$MFT
), >$LogFile
(файл транзакций), >$Volume
(сведения о дисковом томе), >$AttrDef
(определения атрибутов), >'.'
(корневой каталог), >$Bitmap
(карта свободного пространства), >$Boot
(системный загрузчик), >$BadClus
(перечень плохих кластеров) и т.д. Более подробно эти записи описаны в табл. 6.11.
Первые четыре записи настолько важны, что продублированы в специальном файле >$MFTMirr
, находящемся примерно в середине тома (точный адрес этого файла хранится в загрузочном секторе по смещению >38h
байт от его начала). Вопреки своему названию, файл >$MFTMirr
— это отнюдь не "зеркало" всего файла >$MFT
, а всего лишь резервная копия первых четырех его элементов.
Записи с 12 по 15 помечены как используемые, в то время как в действительности они пусты. Как несложно догадаться, они зарезервированы для использования в будущем. Записи с 16 по 23 не задействованы и честно помечены как неиспользуемые.
Начиная с 24 записи, располагаются пользовательские файлы и каталоги. Четыре метафайла, появившихся в Windows 2000 — >$ObjId
, >$Quota
, >$Reparse
и >$UsnJrnl
, — могут располагаться в любой записи, номер которой равен 24 или больше (не забудьте, что нумерация файловых записей начинается с нуля).
Вот и вся теоретическая информация, необходимая на первых порах. Теперь можно приступать к практическому знакомству с NTFS. Для начала запустим утилиту DiskExplorer от Runtime Software, не забывая о том, что она требует прав администратора. В меню File найдем пункт Drive, и в появившемся диалоговом окне выберем логический диск, который требует редактирования. Затем из меню Goto выберем пункт Mft, заставляя DiskExplorer перейти к MFT, автоматически меняя режим отображения на наиболее естественный (рис. 6.3). Как вариант, можно нажать клавишу (View as File Entry) и пропустить несколько первых секторов нажатием клавиши .
Рис. 6.3. Утилита DiskExplorer отображает главную файловую запись в естественном формате
Для каждого из файлов DiskExplorer сообщает следующее.
□ Номер сектора, к которому данная файловая запись принадлежит. Обратите внимание, что номера секторов монотонно увеличиваются на 2, подтверждая тот факт, что размер одной файловой записи равен 1 Кбайт, хотя на практике можно столкнуться и с другими значениями. Для удобства информация отображается сразу в двух системах счисления — шестнадцатеричной и десятичной.
□ Основное имя файла/каталога (то есть имя файла из заголовка файловой записи). Стоит напомнить, что некоторые файлы имеют несколько альтернативных имен, более подробная информация о которых будет приведена далее в данной главе. Если имя файла или каталога зачеркнуто, это означает, что он был удален, но соответствующая ему файловая запись все еще цела. Чтобы извлечь файл с диска (не важно, удаленный или нет), подведите к нему курсор и нажмите клавиатурную комбинацию + для просмотра его содержимого в шестнадцатеричном виде или + — для сохранения файла на диск. То же самое можно сделать и через контекстное меню, выбрав подпункт Recovery. При нажатии клавиатурной комбинации + в буфер обмена копируется последовательность кластеров, занятых файлом, например: >DISKEXPL:K:1034240-1034240
.
□ Тип файловой записи, указывающий, файл это или каталог.
□ Атрибуты файла или каталога: >a
(archive) — архивный, >r
(read-only) — защищенный от записи, то есть доступный только для чтения, >h
(hidden) — скрытый, >s
(system) — системный, >l
(label) — метка тома, >d
(directory) — каталог, >с
(compressed) — сжатый.
□ Размер файла в байтах в десятичной системе счисления (не для каталогов!).
□ Дату и время модификации файла или каталога.
□ Номер первого кластера файла или каталога (или >resident
— для полностью резидентных файлов и каталогов).
□ Перечень типов атрибутов NTFS, имеющихся у файла или каталога, записанных в шестнадцатеричной нотации (обычно эта строка имеет следующий вид: >10 30 80
— атрибут стандартной информации, атрибут имени и атрибут данных файла). Более подробная информация по данному вопросу будет приведена далее в этой главе.