Что такое mft на жестком диске - IT Справочник
Llscompany.ru

IT Справочник
16 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое mft на жестком диске

Как восстановить главную таблицу файлов (Master File Table)

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

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

Что такое главная таблица файлов?

Главная или Общая таблица файлов диска (Master File Table, MFT) — документ, хранящийся исключительно в файловой системе NTFS. Он является важнейшим винтиком в механизме работы данной системы, поскольку хранит в себе такую информацию как размер, дату и время записи, содержимое файлов.

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

Симптомы повреждения

Как и в случае с любой другой ошибкой, повреждения MFT также не проходят бесследно. Они проявляются следующим образом:

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

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

The type of the file system is NTFS.
Volume label Work Folder.
Corrupt master file table. Windows will attempt to recover master file table from disk.
Windows cannot recover master file table. CHKDSK aborted.

Примечание:
Volume label (метка тома) — это название диска, которое в вашем случае может отличаться.

Причины ошибки

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

  • Сбой в работе операционной системы. Например, BSOD (синий экран смерти).
  • Вирус, предназначенный для повреждения MFT.
  • Неправильное извлечение диска (вы могли отключить его в момент неполного завершения работы компьютера).
  • Сбой приложения.
  • Наличие битых секторов.

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

Приложение Starus Partition Recovery для восстановления данных
после повреждения главной таблицы файлов

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

Однако прежде чем выкидывать ненужное устройство, рекомендуем попробовать восстановить с него необходимые вам ценные данные.

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

Руководство по восстановлению данных:

1. Запустите приложение Starus Partition Recovery.

2. Выберите логический раздел или физический диск, с которым предстоит работать.

3. Выберите тип анализа.

4. Дождитесь завершения сканирования.

5. Выделите нужные файлы и нажмите клавишу Восстановить.

6. Выберите наиболее удобный вам тип экспорта данных.

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

Восстановление поврежденной таблицы файлов

Дефрагментация диска

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

1. Откройте Мой компьютер.

2. Щелкните правой кнопкой по логическому разделу или физическому диску, с которым предстоит работать, и перейдите в Свойства.

3. Откройте раздел Сервис и нажмите клавишу Оптимизировать.

4. Проанализируйте и оптимизируйте устройство.

Переустановка диска

Иногда сбой MFT может возникать вследствие некорректной установки разных приложений. В данной ситуации оптимальным решением для вас станет переустановка раздела диска.

Примечание:
Ни при каких обстоятельствах не используйте данный способ относительно системного раздела.

1. Щелкните правой кнопкой по иконке Мой компьютер и выберите параметр Управление.

2. Откройте Диспетчер устройств.

3. Разверните список Дисковые устройства.

4. Щелкните правой кнопкой мыши по нужному диску и нажмите Удалить устройство.

5. Щелкните правой кнопкой мыши по списку Дисковые устройства и нажмите Обновить конфигурацию оборудования.

6. Перезапустите компьютер.

Использование утилиты CHKDSK

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

Как восстановить MFT при помощи CHKDSK?

1. Запустите командную строку от имени администратора.

2. Введите команду chkdsk e: /r. Вместо e: введите букву вашего диска.

3. Нажмите Enter и запустите процесс сканирования, восстановления.

Форматирование диска

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

1. Откройте Мой компьютер.

2. Щелкните правой кнопкой мыши по устройству, с которым предстоит работать, и выберите параметр Форматировать.

3. Воспользуйтесь быстрым или, по желанию, полным форматированием диска.

Надеемся, статья оказалась для вас полезной и помогла найти ответы на поставленные вопросы.

Похожие статьи про восстановление данных:

Типы файловых систем — в чем разница между FAT32, NTFS и exFAT

Должно быть, вы уже неоднократно слышали о таких файловых системах, как FAT32, NTFS и exFAT. Но в че.

Как восстановить исходную файловую систему диска, если утилита CHKDSK не работает

Как известно, форматирование диска — первое решение в случае логической ошибки на нем. Но как .

Исправление файловой системы RAW на SD-карте

Иногда файловая система наших накопителей по определенным причинам может быть повреждена и становитс.

Годовая
подписка
на
Хакер

Xakep #251. Укрепляем VeraCrypt

Xakep #250. Погружение в AD

Xakep #248. Checkm8

Xakep #247. Мобильная антислежка

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

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

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

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

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

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

Основным служебным файлом является главная файловая таблица, $MFT (Master File Table) — своеобразная база данных, хранящая информацию обо всех файлах тома: их именах, атрибутах, способе и порядке размещения на диске. Каталог также является файлом особого типа, со списком принадлежащих ему файлов и вложенных подкаталогов. Важно подчеркнуть, что в MFT присутствуют все файлы, находящиеся во всех подкаталогах тома, поэтому для восстановления диска наличия файла $MFT будет вполне достаточно.

Остальные служебные файлы, называемые метафайлами (metafiles) или метаданными (metadata), всегда имеют имена, начинающиеся со знака доллара ( $ ), и носят сугубо вспомогательный характер, интересный только самой файловой системе. К ним в первую очередь относится: $LogFile — файл транзакций, $Bitmap — карта свободного/занятого пространства, $BadClust — перечень плохих кластеров. Текущие версии Windows блокируют доступ к служебным файлам с прикладного уровня (даже с правами администратора!), и всякая попытка открытия или создания такого файла в корневом каталоге обречена на неудачу.

Читать еще:  Как разобрать жесткий диск seagate 1tb

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

Каждый атрибут состоит из тела (body) и заголовка (header). Атрибуты подразделяются на резидентные (resident) и нерезидентные (non-resident). Резидентные атрибуты хранятся непосредственно в $MFT , что существенно уменьшает грануляцию дискового пространства и сокращает время доступа. Нерезидентные атрибуты хранят в $MFT лишь свой заголовок, описывающий порядок размещения атрибута на диске.

Назначение атрибута определяется его типом (type), представляющим собой четырехбайтное шестнадцатеричное значение. При желании атрибуту можно дать еще и имя (name), состоящее из символов, входящих в соответствующее пространство имен (namespace). Подавляющее большинство файлов имеет по меньшей мере три атрибута. К их числу относится стандартная информация о файле (время создания, модификации, последнего доступа, права доступа), которая хранится в атрибуте типа 10h , условно обозначаемом $STANDARD_INFORMATION . Ранние версии Windows NT позволяли обращаться к атрибутам по их условным обозначениям, но начиная с Windows 2000 мы лишены этой возможности. Полное имя файла (не путать с путем!) хранится в атрибуте типа 30h ( $FILE_NAME ).

Если у файла есть одно или несколько альтернативных имен, таких атрибутов может быть и несколько. Здесь же хранится ссылка (file reference) на родительский каталог, позволяющая разобраться, к какому каталогу принадлежит данный файл или подкаталог. По умолчанию данные файла хранятся в безымянном атрибуте типа 80h ( $DATA ). Однако при желании прикладные программы могут создавать дополнительные потоки данных, отделяя имя атрибута от имени файла знаком двоеточия (например: ECHO xxx > file:attr1; ECHO yyy > file:attr2; more ).

Изначально в NTFS была заложена способность индексации любых атрибутов, значительно сокращающая время поиска файла по заданному списку критериев (например, времени последнего доступа). Индексы хранятся в виде двоичных деревьев, поэтому среднее время выполнения запроса оценивается как O(lg n) . На практике в большинстве драйверов NTFS реализована индексация лишь по имени файла. Как уже говорилось ранее, каталог представляет собой файл особого типа — файл индексов. В отличие от FAT, где файл каталога представляет собой единственный источник данных об организации файлов, в NTFS файл каталога используется лишь для ускорения доступа к содержимому каталога. Он не является обязательным, так как ссылка на родительский каталог всякого файла в обязательном порядке присутствует в атрибуте его имени ( $FILE_NAME ).

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

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

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

Анализ структуры данных файловой системы NTFS

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике: https://hetmanrecovery.com/ru/recovery_news/ntfs-file-system-analysis.htm

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

Что такое NTFS

Файловая система NTFS была разработанная компанией Microsoft с чистого листа для использования в новой операционной системе Windows NT. NTFS должна была заменить собой устаревшую на тот момент файловую систему FAT, многочисленные ограничения которой не позволяли организовать работу в действительно многопользовательской и многозадачной системе.

Разработчики NTFS поставили цель спроектировать надёжную, безопасную, расширяемую и отказоустойчивую файловую систему для HDD-дисков. Им это прекрасно удалось: файловая система получилась на редкость удачной, однако у нее есть как сильные, так и слабые стороны в сравнение с FAT .

Все данные – файлы

В файловой системе FAT ни одну часть данных нельзя было назвать «файлом» в полном смысле этого слова. Концепция NTFS была полностью переработана. В архитектуре NTFS все данные, включая служебные структуры самой файловой системы, универсально представлены в виде файлов. Более того: в NTFS даже сама файловая система представлена в виде отдельных файлов!

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

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

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

Файловая таблица MFT

NTFS хранит информацию о файлах и каталогах в главной файловой таблице MFT. Эта таблица содержит информацию обо всех файлах и каталогах. Каждому файлу или каталогу соответствует как минимум одна запись. Формат записей MFT исключительно прост. Размер записи составляет 1 КБ, при этом первые 42 байта заголовка имеют жёстко заданное предназначение. Остальное пространство используется для хранения атрибутов – например, имени файла и системных атрибутов. Уникальной является возможность сохранения небольших файлов непосредственно в MFT. В этом случае файл хранится в виде атрибута.

Рис. 1. Структура записи MFT, включающая заголовок и три атрибута.

Формат записи MFT

Формально размер записи MFT определяется переменной в загрузочном секторе. Однако все существующие версии Microsoft Windows используют записи размером 1024 байт. В начале записи расположен заголовок размером 42 байта, который содержит 12 полей. Остальные 982 байта не имеют фиксированной структуры и используются для хранения атрибутов.

Формат записи MFT чрезвычайно прост и очень удобен как для быстрой работы операционной системы, так и для поиска удалённых файлов. Фактически запись MFT представляет с собой небольшую ячейку, позволяющую положить в неё всё, что угодно – но в пределах её размера (982 байта). Начало записи зарезервировано для «этикетки», позволяющей корректно идентифицировать и адресовать ячейку.

Адреса записей MFT

Записи MFT адресуются в 48-битной системе, при этом первой записи соответствует нулевой адрес. Адрес последней (максимальной) записи изменяется по мере расширения MFT. Его можно измерить, разделив размер файла $MFT на размер каждой записи. Учитывая, что размер записи в Windows – ровно 1 КБ, данная операция не представляет проблемы.

Записи MFT пронумерованы. Каждой записи соответствует 16-разрядный порядковый номер. При создании новой записи этот номер автоматически увеличивается.

К примеру, рассмотрим запись MFT 313 с порядковым номером 1. При удалении файла, которому была выделена эта запись, и выделении записи другому файлу записи MTF будет выделен новый порядковый номер 2.

Адрес файла формируется следующим образом. Адрес записи MFT объединяется с порядковым номером, занимающим старшие 16 бит. Таким образом формируется уникальный 64-разрядный базовый адрес файла.

Рис. 2. Базовый адрес файла формируется объединением адреса записи MFT и её порядкового номера.

Для обращения к записям MFT в файловой системе NTFS используется порядковый номер записи. Использование уникального порядкового номера записи предоставляет и дополнительное удобство: оно упрощает выявление повреждений файловой системы. К примеру, если сбой происходит на этапе выделения структур данных для нового файла, то по порядковому номеру записи MFT можно будет определить, какому файлу принадлежит данная запись – новому или предыдущему. Соответственно, порядковый номер используют программы для восстановления данных NTFS .

Атрибуты записей MFT

NTFS – уникальная файловая система, не имеющая, в отличие от FAT, жёстко заданной структуры записей. Каждая запись MFT минимально структурирована. Есть заголовок, и есть место для хранения разнообразных атрибутов. Причём атрибутом может быть практически всё, что угодно – дата, время, имя файла и так далее – вплоть до собственно содержимого файла!

Атрибуты могут хранить самую разнообразную информацию. Понятно, что разные типы информации могут быть записаны в разных форматах и занимать больше или меньше места в записи.

Читать еще:  Что такое внешний жесткий диск

Рис. 3. Пример записи MFT с заголовком записи, двумя атрибутами и неиспользуемой областью.

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

В статье « Алгоритм восстановления данных с раздела NTFS » мы рассмотрим процесс поиска и восстановления удаленного файла.

Файловая система NTFS извне и изнутри. Часть 1

Архив номеров / 2004 / Выпуск №11 (24) / Файловая система NTFS извне и изнутри. Часть 1

КРИС КАСПЕРСКИ

Файловая система NTFS извне и изнутри

В этой статье мы рассмотрим основные структуры данных файловой системы NTFS, определяющие ее суть – главную файловую запись MFT, файловые записи FILE Record и последовательности обновления (update sequence или fix-ups), без знания которых осмысленная работа с редактором диска и ручное/полуавтоматическое восстановление данных просто невозможны!

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

К счастью, никто не требует от нас написания полноценного NTFS-драйвера! Наша задача значительно скромнее – вернуть разрушенный том в состояние, пригодное для восприятия операционной системой (задача-максимум) или извлечь из него все ценные файлы (задача-минимум). Вникать в структуру журналов транзакций, дескрипторов безопасности, двоичных деревьев индексаций для этого совершенно необязательно! Реально нам потребуется разобраться лишь с устройством главной файловой записи – MFT и нескольких дочерних подструктур.

Обзор NTFS с высоты птичьего полета

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

Рисунок 1. Обычный (слева) и разряженный (справа) тома

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

Самым главным служебным файлом является $MFT – Master File Table (главная файловая таблица) – своеобразная база данных, хранящая информацию обо всех файлах тома – их именах, атрибутах, способе и порядке размещения на диске (каталог также является файлом особого типа, со списком принадлежащих ему файлов и подкаталогов внутри). Важно подчеркнуть, что в MFT присутствуют все файлы, находящиеся во всех подкаталогах тома, поэтому для восстановления диска наличия $MTF-файла будет вполне достаточно.

Остальные служебные файлы (кстати говоря, называемые метафайлами или метаданными – metafile/metadata соответственно и всегда предваряются знаком доллара «$») носят сугубо вспомогательный характер, интересный только самой файловой системе. К ним в первую очередь относятся: $LogFile – файл транзакций, $Bitmap – карта свободного/занятого пространства, $BadClust – перечень плохих кластеров и т. д. (Подробнее о назначении каждого из файлов будет рассказано в следующей статье). Текущие версии Windows блокируют доступ к служебным файлам с прикладного уровня (даже с правами администратора!), и всякая попытка открытия/создания такого файла в корневом каталоге обречена на неуспех.

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

Каждый атрибут состоит из тела (body) и заголовка (header). Атрибуты делятся на резидентные (resident) и нерезидентные (non-resident). Резидентные атрибуты хранятся непосредственно в $MTF, что существенно уменьшает грануляцию дискового пространства и сокращает время доступа. Нерезидентные – хранят в $MTF лишь свой заголовок, описывающий порядок размещения атрибута на диске.

Назначение атрибута определяется его типом (type) – четырехбайтовым шестнадцатеричным значением. При желании атрибуту можно дать еще и имя (name), состоящее из символов, входящих в соответствующее пространство имен. Подавляющее большинство файлов имеет по меньшей мере три атрибута: стандартная информация о файле (время создания, модификации последнего доступа, права доступа и т. д.) хранится в атрибуте типа 10h, условно обозначаемом $STANDARD_INFORMATION. Ранние версии Windows NT позволяли обращаться к атрибутам по их условным обозначениям, однако Windows 2000 и Windows XP лишены этой возможности. Полное имя файла (не путать с путем!) хранится в атрибуте типа 30h ($FILE_NAME). Если у файла есть одно или более альтернативных имен (например, MS-DOS-имя), таких атрибутов может быть несколько. Здесь же хранится ссылка (file reference) на материнский каталог, позволяющая разобраться, к какому каталогу данный файл/подкаталог принадлежит. Данные файла по умолчанию хранятся в безымянном атрибуте типа 80h ($DATA), однако при желании прикладные приложения могут создавать дополнительные потоки данных, отделяя имя атрибута от имени файла знаком двоеточия, например:

ECHO xxx > file:attr1; ECHO yyy > file:attr2; more начало первого сектора FILE Record

00000000: 46 49 4C 45-2A 00 03 00-7C 77 1A 04-02 00 00 00 FILE* ♥ |w→♦☻

00000010: 01 00 02 00-30 00 01 00-28 02 00 00-00 04 00 00 ☺ ☻ 0 ☺ (☻ ♦

00000020: 00 00 00 00-00 00 00 00-06 00 06 00-00 00 47 11 ♠ ♠ G◄

000001F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 06 00 ♠

начало первого сектора FILE Record

00000000: 46 49 4C 45-2A 00 03 00-7C 77 1A 04-02 00 00 00 FILE* ♥ |w→♦☻

00000010: 01 00 02 00-30 00 01 00-28 02 00 00-00 04 00 00 ☺ ☻ 0 ☺ (☻ ♦

00000020: 00 00 00 00-00 00 00 00-06 00 06 00-00 00 47 11 ♠ ♠ G◄

000001F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ♠

000003F0: 07 CC E1 0D-00 09 00 00-FF FF FF FF-82 79 47 11 •Ia♪ ○ yyyyВy♠

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

Служебные структуры файловой системы NTFS не остаются постоянными, а слегка меняются от одной версии Windows NT к другой (см. таблицу 1). Этот факт следует принять во внимание при использовании автоматизированных «докторов». Попав на более свежую версию NTFS, «доктор», не оснащенный мощным AI, может запутаться в измененных структурах и разрушить вполне здоровый том.

Таблица 3. Определение версии NTFS по операционной системе

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

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

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

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

  1. безопасное и надежное хранение данных (т. е. защищенное от несанкционированного использования и различного рода сбоев и ошибок);
  2. программный интерфейс доступа к файлам;
  3. организацию файлов в виде иерархии каталогов.

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

  • NTFS – основная файловая система семейства Windows NT;
  • FAT (File Allocation Table – таблица размещения файлов) – простая файловая система используемая Windows для устройств флеш памяти, а также для совместимости с другими операционными системами при установке на диски с множественной загрузкой. Основным элементом этой файловой системы является таблица размещения файлов FAT (по имени которой названа вся файловая система), необходимая для определения расположения файла на диске. Существует три варианта FAT, отличающихся разрядностью идентификаторов, указывающих размещение файлов: FAT12, FAT16 и FAT32;
  • exFAT (Extended FAT – расширенная FAT) – развитие файловой системы FAT, использующее 64 разрядные идентификаторы. Применяется в основном для устройств флеш-памяти;
  • CDFS (CD ROM File System) – файловая система для CD дисков, объединяющая форматы ISO 9660 1 ISO 9660 – стандарт ISO (International Organization for Standardization – Международная организация по стандартизации) для файловых систем CD дисков и Joliet 2 Joliet – расширение стандарта ISO 9660, разработанное Microsoft. Снимает жесткие ограничения на именование файлов ;
  • UDF (Universal Disk Format – универсальный формат дисков) – файловая система для CD и DVD дисков, разработанная для замены ISO 9660.
Читать еще:  Из чего состоит внешний жесткий диск

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

Диск ( disk ) – устройство внешней памяти , например, жесткий диск или оптический диск (CD, DVD , Blu ray).

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

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

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

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

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

Сектор ( sector ) – блок данных фиксированного размера на диске; наименьшая единица информации для диска. Типичный размер сектора для жестких дисков равен 512 байтам, для оптических дисков – 2048 байт . Деление диска на секторы происходит один раз при создании диска в процессе низкоуровневого форматирования и обычно не может быть изменено.

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

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

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

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

Файловая система NTFS ( New Technology File System ) разрабатывалась Microsoft в начале 1990 х гг. как основная файловая система для серверных версий операционных систем Windows . NTFS была представлена в 1993 году в операционной системе Windows NT 3.1.

В настоящее время NTFS рассматривается в качестве предпочтительной файловой системы как для серверных, так и для клиентских версий Windows .

В 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]:

  • восстанавливаемость (recoverability) – способность файловой системы возвращаться к работоспособному состоянию после возникновения сбоя. Реализуется такая возможность, во первых, за счет поддержки атомарных транзакций, во вторых, за счет избыточности хранения информации. Атомарная транзакция (atomic transaction) – операция с файловой системой, приводящая к её изменению, которая либо полностью успешно выполняется, либо не выполняется вообще (т. е. в случае сбоя во время атомарной транзакции все изменения откатываются). Избыточность используется при хранении важнейших данных файловой системы, критически необходимых для её корректной работы;
  • безопасность (security) – защищенность файлов от несанкционированного доступа. Реализуется при помощи модели безопасности Windows, рассмотренной в лекции 9 «Безопасность в Windows»;
  • шифрование (encryption) – преобразование файла в зашифрованный код, который невозможно прочесть без ключа. Обычные механизмы безопасности, такие как назначение прав доступа пользователей к файлам, не обеспечивают полной защиты информации, например, в случае перемещения диска на другой компьютер. Администратор операционной системы всегда может получить доступ к файлам других пользователей, даже на томе NTFS. Поэтому в NTFS включена поддержка шифрующей файловой системы EFS (Encrypting File System), которая позволяет легко зашифровывать и расшифровывать файлы;
  • поддержка RAID (Redundant Array of Inexpensive (Independent) Disks – массив недорогих (независимых) дисков с избыточностью) – возможность использования для хранения информации нескольких дисков; данные с одного диска автоматически копируются на другие, обеспечивая тем самым повышенную надежность;
  • дисковые квоты для пользователей (Per-User Volume Quotas) – возможность выделения для каждого пользователя определенного пространства на диске (квоты); NTFS не позволяет пользователю записывать данные на диск сверх выделенной квоты.

Структура NTFS

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

В начале тома находится загрузочная запись тома ( Volume Boot Record ), в которой содержится код загрузки Windows , информация о томе (в частности, тип файловой системы), адреса системных файлов ($ Mft и $MftMirr – см. далее). Загрузочная запись занимает обычно 8 КБ (16 первых секторов).

В определенной области тома ( адрес начала этой области указывается в загрузочной записи) расположена основная системная структура NTFS – главная таблица файлов (Master File Table , MFT ). В записях этой таблицы содержится вся информация о расположении файлов на томе, а небольшие файлы хранятся прямо в записях MFT .

Важной особенностью NTFS является то, что вся информация , как пользовательская, так и системная, хранится в виде файлов. Имена системных файлов начинаются со знака «$». Например, загрузочная запись тома содержится в файле $ Boot , а главная таблица файлов – в файле $ Mft . Такая организация информации позволяет единообразно работать как с пользовательскими, так и с системными данными на томе.

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

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

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

Главная таблица файлов MFT состоит из множества записей о файлах (файловых записей), расположенных на томе. Размер одной записи – 1 КБ (2 сектора). Самая первая запись в MFT – это запись о самом файле $ Mft . Во второй записи содержится информация о файле $MftMirr – зеркальной копии MFT . В этом файле дублируются первые 4 записи таблицы MFT , в том числе запись о $ Mft . В случае возникновения сбоя, если MFT окажется недоступной, информация о системных файлах будет считываться из $MftMirr (в загрузочной записи имеется адрес $MftMirr).

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

  • $LogFile – файл журнала, в котором записывается информация о всех операциях, изменяющих структуру тома NTFS, например, создание файлов и каталогов. Файл журнала используется при восстановлении тома NTFS после сбоев;
  • $Volume – файл информации о томе, в котором содержатся имя тома (Volume label), версия NTFS и набор флагов состояния тома, например, флаг (т. н. грязный бит, dirty bit), установка которого означает, что том был поврежден и требует восстановления при помощи системной утилиты Chkdsk;
  • $AttrDef – таблица определения атрибутов (Attribute Definition Table), содержащая возможные на данном томе типы атрибутов файлов (см. далее);
  • Root Directory (обозначается также обратным слешем «») – файл с информацией о корневом каталоге тома. В нем хранятся ссылки на файлы и каталоги, содержащиеся в корневом каталоге;
  • $BitMap – файл битовой карты (bitmap), каждый бит в этой карте соответствует кластеру на томе: если бит равен 1, кластер занят, иначе – свободен;
  • $Boot – файл загрузочной записи тома;
  • $BadClus – файл плохих кластеров (bad clusters), содержащий информацию обо всех кластерах, имеющих сбойные секторы (bad sectors).

Кроме перечисленных, имеются и другие системные файлы NTFS , а в новых версиях появляются новые системные файлы.

Далее рассмотрим, что представляет собой файл в системе NTFS .

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector