Ntfs mft extents что это
Опишем процесс ручного восстановления данных в случае удаленных файлов или файлов из поврежденных разделов системы NTFS при работе в ОС Windows NT. Проблема заключается в том, что в составе этой ОС нет соответствующих программных средств. Программы же восстановления данных NTFS от сторонних производителей, к сожалению, не всегда используют все возможности восстановления. Ситуация усугубляется отсутствием полной документации по низкоуровневой структуре управляющих блоков NTFS.
Что же делать, если в один прекрасный момент обнаруживается, что компьютер с ОС Windows NT больше не загружается или некоторые логические разделы NTFS стали вдруг недоступны?
Сначала нужно уточнить, с чем связана неисправность: физическим повреждением диска, выходом из строя контроллера или разрушением файловой системы NTFS.
Разница между файловыми системами «NTFS» , «FAT» , «FAT32» и «exFAT»
Файловая система «FAT» создавалась первоначально для накопителей незначительного объема и способна поддерживать граничные размеры файлов до четырех гигабайт, в то время как в системе «NTFS» допустимый предел размера увеличен до шестнадцати терабайт. Далее подробнее представлены другие отличия:
Проблемы с файловой системой
Убедившись, что диск, контроллер и соединительный кабель исправны, не торопитесь использовать дискету NT Repair Disk, созданную при установке ОС, или запускать программу восстановления файловой системы chkdsk — результат может оказаться плачевным. Не пытайтесь также найти «волшебную» программу восстановления NTFS в комплекте Norton Utilities для Windows NT — пока ее там нет. Если информация, записанная на диске, имеет особую ценность, нужно вначале проанализировать состояние управляющих блоков файловой системы NTFS с помощью редактора диска.
Такая работа требует достаточно высокой квалификации. В частности, нужно разбираться в форматах управляющих блоков файловой системы. Если вы не в состоянии выполнить ее самостоятельно, лучше вызвать специалиста и не предпринимать попыток самому отремонтировать NTFS.
Чтобы проверить управляющие блоки, нужно подключить к компьютеру два диска: первый, исправный загрузочный, и второй — тот, информацию с которого необходимо восстановить.
Сначала подключается только первый диск и инсталлируется ОС Windows NT. Этот диск будет использован для сохранения файлов, восстановленных из разделов поврежденного. Далее устанавливается редактор Disk Probe, входящий в состав Windows NT Resource Kit. Хотя этот редактор далек от совершенства, именно он позволит выполнить всю работу по восстановлению потерянных файлов.
Убедившись, что с первым диском все в порядке, выключите компьютер и подключите к нему второй, поврежденный диск.
Адреса записей MFT
Записи MFT пронумерованы. Каждой записи соответствует 16-разрядный порядковый номер. При создании новой записи этот номер автоматически увеличивается.
К примеру, рассмотрим запись MFT 313 с порядковым номером 1. При удалении файла, которому была выделена эта запись, и выделении записи другому файлу записи MTF будет выделен новый порядковый номер 2.
Адрес файла формируется следующим образом. Адрес записи MFT объединяется с порядковым номером, занимающим старшие 16 бит. Таким образом формируется уникальный 64-разрядный базовый адрес файла.
Рис. 2. Базовый адрес файла формируется объединением адреса записи MFT и её порядкового номера.
Для обращения к записям MFT в файловой системе NTFS используется порядковый номер записи. Использование уникального порядкового номера записи предоставляет и дополнительное удобство: оно упрощает выявление повреждений файловой системы. К примеру, если сбой происходит на этапе выделения структур данных для нового файла, то по порядковому номеру записи MFT можно будет определить, какому файлу принадлежит данная запись – новому или предыдущему. Соответственно, порядковый номер используют программы для восстановления данных NTFS .
Файловая таблица MFT
NTFS хранит информацию о файлах и каталогах в главной файловой таблице MFT. Эта таблица содержит информацию обо всех файлах и каталогах. Каждому файлу или каталогу соответствует как минимум одна запись. Формат записей MFT исключительно прост. Размер записи составляет 1 КБ, при этом первые 42 байта заголовка имеют жёстко заданное предназначение. Остальное пространство используется для хранения атрибутов – например, имени файла и системных атрибутов. Уникальной является возможность сохранения небольших файлов непосредственно в MFT. В этом случае файл хранится в виде атрибута.
Рис. 1. Структура записи MFT, включающая заголовок и три атрибута.
Дефрагментация диска
В некоторых случаях причиной отказа работы MFT и, как следствие, всей системы NTFS является чрезмерное фрагментирование диска. Решить этот вопрос можно следующим образом:
1. Откройте Мой компьютер .
2. Щелкните правой кнопкой по логическому разделу или физическому диску, с которым предстоит работать, и перейдите в Свойства .
Читайте о том, что собой представляют файловые системы и какие у них между собой отличия . Сделаем акцент на разнице между файловыми системами «NTFS», «FAT», «FAT32» и «exFAT».
NTFS с высоты птичьего полета
Основным структурным элементом всякой файловой системы является том (volume), в случае с FAT совпадающий с разделом (partition). NTFS поддерживает тома, состоящие из нескольких разделов (см. рис.). Будем для простоты считать, что том представляет собой отформатированный раздел (то есть раздел, содержащий служебные структуры файловой системы).
Обычный и распределенный тома
Большинство файловых систем трактуют том как совокупность файлов, свободного дискового пространства и служебных структур файловой системы, но в NTFS все служебные структуры представлены файлами, которые (как это и положено файлам) могут находиться в любом месте тома, при необходимости фрагментируя себя на несколько частей.
Основным служебным файлом является главная файловая таблица, $MFT (Master File Table) — своеобразная база данных, хранящая информацию обо всех файлах тома: их именах, атрибутах, способе и порядке размещения на диске. Каталог также является файлом особого типа, со списком принадлежащих ему файлов и вложенных подкаталогов. Важно подчеркнуть, что в MFT присутствуют все файлы, находящиеся во всех подкаталогах тома, поэтому для восстановления диска наличия файла $MFT будет вполне достаточно.
Остальные служебные файлы, называемые метафайлами (metafiles) или метаданными (metadata), всегда имеют имена, начинающиеся со знака доллара ( $ ), и носят сугубо вспомогательный характер, интересный только самой файловой системе. К ним в первую очередь относится: $LogFile — файл транзакций, $Bitmap — карта свободного/занятого пространства, $BadClust — перечень плохих кластеров. Текущие версии Windows блокируют доступ к служебным файлам с прикладного уровня (даже с правами администратора!), и всякая попытка открытия или создания такого файла в корневом каталоге обречена на неудачу.
Классическое определение, данное в учебниках информатики, отождествляет файл с именованной записью на диске. Большинство файловых систем добавляет к этому понятие атрибута (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 < file:attr1; more < file:attr2 ).
Изначально в NTFS была заложена способность индексации любых атрибутов, значительно сокращающая время поиска файла по заданному списку критериев (например, времени последнего доступа). Индексы хранятся в виде двоичных деревьев, поэтому среднее время выполнения запроса оценивается как O(lg n) . На практике в большинстве драйверов NTFS реализована индексация лишь по имени файла. Как уже говорилось ранее, каталог представляет собой файл особого типа — файл индексов. В отличие от FAT, где файл каталога представляет собой единственный источник данных об организации файлов, в NTFS файл каталога используется лишь для ускорения доступа к содержимому каталога. Он не является обязательным, так как ссылка на родительский каталог всякого файла в обязательном порядке присутствует в атрибуте его имени ( $FILE_NAME ).
Анализ записей MFT
К сожалению, программа Disk Probe не содержит никаких средств для форматного просмотра содержимого записей MFT. Более того, точный формат этой записи отсутствует в открытой документации Microsoft. Однако многое можно обнаружить в Internet, сделав запрос по ключевым словам «NTFS Documentation». Нам, например, удалось найти информацию, собранную разработчиками модулей для операционной системы Linux. Анализируя исходные тексты модуля для монтирования в Linux файловой системы NTFS, можно понять назначение отдельных полей записей MFT (авторы приносят благодарность Максиму Синеву за помощь в «расшифровке» записей MFT).
Запись MFT состоит из начального фрагмента фиксированного размера и набора атрибутов, имеющих в общем случае переменный размер. Для восстановления файлов нужно знать точный формат только атрибута данных. Что же касается других атрибутов, достаточно уметь определять их расположение и размер.
Первые четыре байта в записи, описывающей файл, образуют слово FILE. На рис. 3 они выделены красным цветом. Следующие два байта (выделенные синим цветом) — смещение так называемой области Fixup. В рассматриваемом случае значение смещения равно 002A (с учетом обратного порядка расположения байтов в слове). Здесь и далее будем пользоваться шестнадцатеричными числами.
Область Fixup используется в процессе обнаружения ошибок чтения или записи. Она состоит из слов размером два байта. Количество слов хранится в записи MFT со смещением 0006. На рис. 3 поле размера области Fixup выделено фиолетовым цветом. Там хранится значение 0003, следовательно, область Fixup начинается со смещения 002A и простирается до 002A+(2*0003)=002F.
Первые четыре байта области атрибутов определяют тип, а следующие четыре — размер в байтах. Например, вслед за областью Fixup со смещением 0030 следует атрибут с типом 10. На рис. 3 тип этого и следующего за ним атрибутов выделен красным цветом (размер атрибута выделен синим). Атрибут занимает 48 байт, следовательно, следующий атрибут (с типом 30) начнется со смещением 0078.
Таким образом можно выделить в записи MFT все атрибуты. В конце самого последнего записано значение FFFFFFFF — признак конца цепочки атрибутов.
Для восстановления файлов наибольший интерес представляют атрибуты типа 30 и 80. Первый из них хранит имя файла. По нему следует искать запись MFT, описывающую восстанавливаемый файл. Второй атрибут с типом 80 хранит список кластеров, выделенных файлу, или сам файл. Про него мы расскажем подробнее.
Как видно из рисунка, тип атрибута, равный 80, хранится в записи MFT со смещением 0160. Всего атрибут данных занимает D8 байт, так как именно это значение находится в четырехбайтовом поле со смещением 4 относительно начала атрибута.
Байт со смещением 8 относительно начала атрибута данных — это признак резидентного размещения файла. Если его значение равно 1, запись MFT хранит только список кластеров, выделенных файлу (как в описываемом случае), а если 0 — файл находится внутри самой записи MFT. Как правило, записи содержат только файлы небольших размеров.
Сначала рассмотрим случай нерезидентного размещения файла. При этом четыре байта со смещением 30 хранят длину файла, расположенного где-то на диске. В данном примере длина файла $MFT составляет B7B000 байт.
Для того чтобы определить точное расположение нерезидентного файла на диске, нужно проследить цепочку так называемых блоков виртуальных номеров кластеров Virtual Cluster Number (VCN), или просто блоков VCN. Показатель смещения начала этой цепочки хранится в двухбайтовом поле, имеющем смещение 20 байт относительно начала атрибута данных. В описываемом случае этот показатель равен 40, а смещение области блоков VCN относительно начала записи MFT равно 01A0. На рис. 5 эта область выделена жирной вертикальной линией зеленого цвета.
Проблемы с диском
Жесткие диски имеют ограниченный срок службы, обычно — несколько лет. Выход устройства из строя иногда можно определить по характерным щелчкам в момент инициализации. Диск может несколько раз щелкнуть и затихнуть, так и не раскрутившись. При инициализации BIOS сообщит вам об этой неисправности. В такой ситуации следует произвести ремонт жесткого диска. Если стоимость потерянной информации заметно превышает стоимость самого диска, следует обратиться к специалистам, что, впрочем, недешево.
Ремонт выполняется следующим образом. Если из строя вышла электроника, расположенная вне герметичного пространства диска, то заменяется или ремонтируется соответствующая плата. Для этого часто приходится разбирать другой диск точно такого же типа.
В том случае, когда повреждены детали, расположенные внутри корпуса диска, проблем будет больше. Прежде всего, разбирать сломанный диск нужно в так называемой «чистой комнате», где гарантируется отсутствие пыли. Затем следует заменить плату с электроникой, сняв ее с другого диска. Отремонтированный диск закрывается, после чего остается только скопировать информацию на третий диск по секторам.
Поэтому если сломался жесткий диск с ценной информацией, приготовьтесь пожертвовать еще одним для ремонта и найдите третий для копирования восстановленных данных.
Если есть подозрение на неисправность контроллера диска, попробуйте его заменить. Проверьте также соединительный кабель.
Что такое NTFS
Файловая система NTFS была разработанная компанией Microsoft с чистого листа для использования в новой операционной системе Windows NT. NTFS должна была заменить собой устаревшую на тот момент файловую систему FAT, многочисленные ограничения которой не позволяли организовать работу в действительно многопользовательской и многозадачной системе.
Разработчики NTFS поставили цель спроектировать надёжную, безопасную, расширяемую и отказоустойчивую файловую систему для HDD-дисков. Им это прекрасно удалось: файловая система получилась на редкость удачной, однако у нее есть как сильные, так и слабые стороны в сравнение с FAT .
Как найти таблицу MFT?
Обратите внимание на строку FILE, расположенную в самом начале сектора. С нее начинаются записи таблицы, описывающие файлы. Существуют еще записи для каталогов, элементов индекса и другие, которые мы не будем рассматривать.
Строка $.M.F.T. находится со смещением D2. Это имя системного файла, содержащего таблицу MFT, в кодировке Unicode. Таким образом, первая запись файла $MFT описывает сам этот файл. Просматривая таблицу, можно обнаружить записи для других системных файлов, таких как $MFTMirror, $LogFile, $Volume, $AttrDef и др.
Если загрузочный сектор разрушен, начало таблицы MFT нетрудно найти с помощью программы Disk Probe. Для этого выберите в меню Tools строку Search Sector, установите переключатели в положение, показанное на рис. 4, и, заполнив поле Enter characters to search for, нажмите кнопку Search. Следует запастись терпением, поскольку процесс поиска может отнять немало времени.
Заметим, что подобным образом можно найти в таблице MFT записи для тех файлов, которые нужно восстановить. Так как имена файлов хранятся в кодировке Unicode, при поиске следует установить переключатель в положение Unicode characters. Кроме того, необходимо включить режим поиска Exhaustive search и Ignore case.
Определение термина файловая система
Файловая система – это организованный порядок, определяющий набор правил для безопасного расположения, хранения и последующего доступа к разнообразным данным на запоминающих хранилищах информации в компьютерных и других устройствах, содержащих цифровой накопитель. Параметры файловой системы изначально определяют формат содержимого, группируют его в понятном, для операционной системы, виде, содержащим набор файлов и каталогов, устанавливают максимальный граничный размер файла и раздела, управляют приоритетами доступа, осуществляют шифрование файлов , назначают набор атрибутов файла и перенаправляют к конкретной информации при соответствующем запросе операционной системы.
Программная система управления аппаратными средствами компьютера идентифицирует любой накопитель как набор однотипных кластеров. Драйверы файловой системы организуют кластеры доступного дискового пространства в файлы и каталоги и содержат список реализованной организации, на основании которого происходит отслеживание и маркировка используемых, свободных или неисправных кластеров, а также осуществляется переход к нужным ячейкам хранения данных по первому требованию.
Файловые системы обслуживают любые виды накопителей информации и управляют различными категориями, например, носители с произвольным или последовательным доступом, виртуальные и сетевые файловые системы, оптические носители, устройства на базе флэш-памяти и т.д.
Главные функции файловой системы сводятся к построению логической модели внутренней организации пространства запоминающего устройства, устойчивой к сбоям питания, ошибкам аппаратных и программных средств, и обеспечению беспрепятственного взаимодействия элементов операционной системы и программных приложений с расположенными на носителе информационными ресурсами.
Все данные – файлы
В файловой системе FAT ни одну часть данных нельзя было назвать «файлом» в полном смысле этого слова. Концепция NTFS была полностью переработана. В архитектуре NTFS все данные, включая служебные структуры самой файловой системы, универсально представлены в виде файлов. Более того: в NTFS даже сама файловая система представлена в виде отдельных файлов!
В виде файлов хранятся и административные данные базовой файловой системы – те самые данные, которые в других файловых системах находятся в скрытых областях по фиксированному адресу. В NTFS нет нужды резервировать какие-то особые области под файловые таблицы, таблицу разделов или журнал транзакций: они хранятся в виде обычных файлов и могут физически располагаться в любом месте тома.
При необходимости эти файлы могут менять свой размер (в частности, файловые таблицы заметно «распухают» при хранении на томе большого числа файлов), при этом системой используются стандартные механизмы, предусмотренные для работы с файлами. Если не будет непрерывного участка для хранения данных файловой системы – ничего страшного: файл будет фрагментирован (сохранён в виде нескольких фрагментов в разных частях диска).
Описанная концепция является основополагающим принципом NTFS. В отличие от других файловых систем, в NTFS нет жёстко заданной структуры. В ней нет, как в FAT, раздельных областей для системных структур, файловых таблиц и собственно данных. В NTFS вся файловая система считается областью данных, поэтому любой файл может быть сохранён в любом секторе тома. Единственным неизбежным исключением являются загрузочный сектор и загрузочный код, расположенные в первых секторах тома.
Заключение
Для хранения, передачи и распространения цифровой информации в обязательном порядке используются различные виды внутренних или внешних запоминающих устройств, каждый из которых оснащен файловой системой. Разнообразные виды дисковых хранилищ, одномоментно задействованных для хранения информации и использующих различные вариации стандартов файловых систем, не ограничивается единственным экземпляром, и могут иметь разные характеристики.
В зависимости от предъявляемых к накопителям требованиям, пользователи могут, на основании представленного сравнительного обзора, разобраться в особенностях отдельных файловых систем и самостоятельно выбрать наиболее удачную версию для каждого конкретного устройства. По своему усмотрению пользователи могут оставить без изменений, установленную первоначально, файловую систему, при использовании носителя информации на широком круге различных компьютерных устройств, или обновить ее до максимально выгодной файловой системы «NTFS» при необходимости статичного использования запоминающего дискового накопителя, например, в качестве основы для установки новейшей версии операционной системы «Windows 10» .
Устройство файловой системы NTFS поражает своей грандиозностью и напоминает огромный, окутанный мраком лабиринт. Но какого любителя приключений остановит паутина, скелеты и пара ловушек с ядовитыми стрелами? Хватай факел, и отправимся в путь. Нашим первым квестом будет изучение главной файловой таблицы — MFT и нескольких дочерних структур.
Стандарт файловой системы NTFS версии 3.1 появился в 2001 году с выходом на рынок Windows XP и с тех пор не претерпел фундаментальных изменений. В Windows 10 также используется NTFS v3.1. Архитектуру и особенности внутреннего устройства этой файловой системы Крис Касперски подробно описал в своей книге «Восстановление данных», которая сейчас готовится к переизданию. Мы публикуем отрывок из этой книги, где Крис рассказывает о том, что представляет собой NTFS изнутри.
Файловая система «NTFS»
«NTFS» ( «файловая система новой технологии» ) была в основном создана с целью устранения ограничений и недостатков файловых систем «FAT» , улучшения производительности, надёжности и эффективности использования дискового пространства, а также создания надежного механизма защиты и хранения информации. Файловая система «NTFS» хранит информацию о файлах в главной файловой таблице «Master File Table» ( «MFT» ), осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла, применяя систему шифрования под названием «Encryption File System» , которая использует защитный метод «прозрачного шифрования» данных.
Помимо вышесказанного, в файловой системе «NTFS» добавлена способность, отсутствующая в характеристиках файловой системы «FAT» , открывать файлы, в названиях которых не используются английские буквы, позволяя использовать любые символы стандарта кодирования юникода «UTF» . Таким образом, ограничения использования в названиях символов любых сложных языков, например, хинди или корейский, отсутствует.
Таблица MFT
Внутренняя структура файловой системы NTFS принципиально отличается от хорошо знакомой большинству FAT. Не вдаваясь в подробности, изложим лишь те сведения, которые необходимы для выполнения в ней восстановительных работ.
Файловая система FAT (и ее разновидность FAT32) хранит информацию о файлах в нескольких местах логического устройства. Дескриптор файла, содержащий его имя, размер, дату создания и номер первого выделенного для него кластера, находится в каталоге. Таблица размещения файлов File Allocation Table, от которой и произошло название файловой системы FAT, хранит связанный список всех кластеров, выделенных файлу. И наконец, сам файл может быть распылен по кластерам.
Такая организация в значительной мере затрудняет восстановление файлов в случае каких-либо сбоев. Особенно критичной является целостность таблицы FAT: если эта таблица пропала или ее содержимое оказалось частично разрушено, исчезает информация о кластерах, выделенных файлу. В результате файл можно с очень большим трудом собрать из отдельных кластеров, лишь зная его содержимое. К тому же эта работа требует очень много времени. Поэтому на практике исчезновение таблицы FAT и ее копии означает полную потерю файлов.
Потеря каталогов приводит к невозможности определения номера первого кластера, выделенного файлу, его имени и точного размера. В этом случае последствия не столь катастрофичны, так как в таблице FAT остались «бесхозные» цепочки кластеров, которые нетрудно превратить в файлы. Имена полученных таким образом файлов обычно состоят из цифр. Заметим, что при крушении каталогов, содержащих тысячи файлов, после восстановления будет трудно найти нужный файл, если хотя бы приблизительно не известно его содержимое.
В файловой системе NTFS вся информация о файлах хранится в так называемой главной таблице файлов Master File Table (MFT). Записи таблицы MFT содержат наборы дескрипторов с такой информацией о файлах, как имя, даты создания и модификации, атрибуты безопасности, и, что самое главное, списки кластеров, выделенных файлам. Если файл имеет небольшой размер, то он может храниться непосредственно в записи таблицы MFT.
Следовательно, возможность восстановления файлов из поврежденных разделов NTFS во многом определяется целостностью таблицы MFT и ее копии.
«exFAT»
- Доступ к дискам с файловой системой «exFAT» в операционной системе «Linux» можно получить только после установки соответствующего программного обеспечения.
- Работает со всеми версиями операционной системы «Windows» и современными версиями системы «Mac OS X» .
Симптомы повреждения
Как и в случае с любой другой ошибкой, повреждения MFT также не проходят бесследно. Они проявляются следующим образом:
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.
Причины ошибки
В большинстве случаев, повреждение раздела NTFS смело свидетельствует о наличии сбоя главной таблицы файлов. Причин, способных спровоцировать возникновение неполадки, существует множество, но мы разберем самые основные:
- Сбой в работе операционной системы. Например, BSOD (синий экран смерти).
- Вирус, предназначенный для повреждения MFT.
- Неправильное извлечение диска (вы могли отключить его в момент неполного завершения работы компьютера).
- Сбой приложения.
- Наличие битых секторов.
Вне зависимости от причины возникновения неполадки, всегда есть шанс на восстановление диска и данных на нем. Каждая из приведенных ниже инструкций позволит своей простотой существенно сэкономить ваше личное время с большой долей вероятности вернуть HDD к жизни. Приступим!
Атрибуты записей MFT
NTFS – уникальная файловая система, не имеющая, в отличие от FAT, жёстко заданной структуры записей. Каждая запись MFT минимально структурирована. Есть заголовок, и есть место для хранения разнообразных атрибутов. Причём атрибутом может быть практически всё, что угодно – дата, время, имя файла и так далее – вплоть до собственно содержимого файла!
Атрибуты могут хранить самую разнообразную информацию. Понятно, что разные типы информации могут быть записаны в разных форматах и занимать больше или меньше места в записи.
Рис. 3. Пример записи MFT с заголовком записи, двумя атрибутами и неиспользуемой областью.
Итак, атрибуты могут содержать любую информацию. Но у каждого атрибута есть универсальная часть: заголовок. Формат заголовка стандартизован и одинаков для всех атрибутов. А вот содержимое атрибута может быть произвольной формы и размера.
В статье « Алгоритм восстановления данных с раздела NTFS » мы рассмотрим процесс поиска и восстановления удаленного файла.
В предыдущих статьях мы неоднократно затрагивали тему повреждений HDD. Но что случится, если эти повреждения приобретут массовый характер во всего лишь одном накопителе? Такое развитие событий приведет к неизбежному сбою главной таблицы файлов диска и ряду других неприятных последствий.
«FAT 32»
- Отсутствуют функции безопасности, которые реализованы в более современной файловой системе «NTFS» .
- Не удается установить новейшие версии операционной системы «Windows» (поскольку файл имеет большой размер и может быть установлен только на диски, отформатированные в системе «NTFS» ).
«NTFS»
- Поддержка файлов и дисков значительных размеров, на порядок превышающие остальные файловые системы.
- Позволяет использовать расширенные имена файлов, включая поддержку множества сложных языков.
- Падение работоспособности системы при запуске приложения проверки жёсткого диска или внешнего накопителя на ошибки файловой системы «chkdsk» .
- Стандартное приложение обслуживания системы «chkdsk» печально известно своей медлительностью.
- Повышен уровень безопасности благодаря внедрению метода шифрования файлов.
- Значительно быстрее на дисках объемом менее сорока гигабайт.
- Меньшие файловые кластеры.
- Поддержка сжатия на уровне файловой системы для файлов, каталогов и дисков для уменьшения дискового пространства.
- Пользовательские разрешения для файлов и папок.
- Копии файлов «отменяются» , если прерванный кластер очищен.
- Небольшие файлы хранятся в главной таблице файлов в начале диска.
Введение
За ответственное и сохранное расположение информационных материалов отвечают запоминающие устройства. Для их успешного и безошибочного функционирования необходимо обязательное наличие программного интерфейса, структурирующего расположение любой информации, и предоставляющего упорядоченные способы управления доступными ресурсами. Такой урегулированный контролируемый способ внутренней организации, расположения и упорядочивания данных, в соответствии с собственными методами каталогизации и озаглавливания, на различных носителях информации в компьютерах и ноутбуках, а также в разнообразных сторонних электронных устройствах, получил обобщающее название файловая система.
Файловые системы имеют собственную классификацию и представлены различными видами, включающие как наиболее распространенные «NTFS» , «FAT» , «HFS+» , «Extfs» , «Ext2» , «ReiserFS» , «XFS» , «HPFS» , «ext2» , «OpenBSD» , «UDF» , «YAFFS» , так и довольно редкие «ZFS» , и данный ряд может быть существенно дополнен многими другими вариантами.
Наиболее часто встречающимися и массово представленными файловыми системами безусловно являются «NTFS» , «FAT» , «FAT32» и «exFAT» . Но обычный пользователь не всегда точно может понять разницу между системами. В этой статье мы попытаемся рассмотреть общее понятие файловой системы и ответить на отдельные вопросы, такие как: – «Что представляют собой файловые системы «FAT», «FAT32», «exFAT» и «NTFS» и в чем разница между ними?» .
Файловая система «FAT32»
«FAT32» является фактическим стандартом, пришедшим на смену более ранним версиям файловой системы «FAT» , «FAT12» и «FAT16» , и изначально устанавливается на большинстве видов сменных носителей по умолчанию. Пространство «FAT32» логически разделено на три сопредельные области: зарезервированную область для служебных структур, табличную форму указателей и непосредственную зону записи содержимого файлов. Файловая система позволяет использовать накопители на ее основе не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом «USB» .
Тем не менее, стандарт «FAT32» имеет определенные системные ограничения. Размер отдельных файлов на диске с файловой системой «FAT32» не может превышать четыре гигабайта. Кроме того, весь раздел «FAT32» должен быть менее восьми терабайт. По совокупности ограничений, формат «FAT32» считается подходящим для «USB-накопителей» или внешних носителей информации. Для внутреннего накопителя, особенно при желании установить новейшую версию операционной системы «Windows 10» , отсутствие отдельных привилегий прикладного уровня в «FAT32» будет серьезным препятствием, и потребует наличия более продвинутой версии файловой системы.
Анализ области блоков VCN
Файл, записанный в разделе NTFS, может быть сегментирован. Он состоит из одного или нескольких фрагментов, называемых экстентами. Размер и расположение каждого экстента описывается в блоке VCN. В зависимости от того, фрагментирован файл или нет, область VCN может содержать один блок или их набор. Блоки VCN имеют переменный размер, определяемый первым байтом.
Формат блока стоит показать на конкретном примере. Возьмем первый блок VCN, имеющий в рассматриваемом примере смещение 01A0 относительно начала записи MFT:
Тетрады первого байта со значением 31 определяют размеры двух полей блока VCN. Первое поле, имеющее длину один байт, хранит количество кластеров, выделенных экстенту файла. Второе поле размером три байта содержит номер первого кластера. В данном случае первому экстенту файла $MFT выделено 20 кластеров, а номер первого кластера для первого экстента равен 0286D9. Таким образом определяем размер и расположение первого экстента файла.
Для того чтобы определить первый кластер второго экстента, необходимо прибавить к адресу первого экстента смещение, указанное во втором блоке VCN (с учетом знака). В данном случае второй экстент размещен в кластере с номером 0286D9+21=286FA. Длина второго экстента составляет 0824 кластера.
Анализируя остальные блоки VCN, можно определить размеры и расположение всех экстентов файла. Список блоков VCN закрывается байтом с нулевым значением.
Как же восстановить файлы?
Теперь, вооружившись приведенными выше знаниями о внутренней структуре системных блоков NTFS, можно приступить к восстановлению файлов из поврежденного раздела этой файловой системы.
Когда известны имена файлов, подлежащих восстановлению, нужно найти соответствующие им записи в таблице MFT. Это можно сделать с помощью программы Disk Probe, воспользовавшись строкой Search Sector из меню Tools. Далее следует обнаружить в этой записи атрибут данных и определить, резидентный он или нет.
Если атрибут данных резидентный, то нужно сохранить сектор, содержащий запись MFT, в виде файла на исправном жестком диске или на дискете. Это можно сделать, используя строку Save as меню File программы Disk Probe. После этого следует вырезать нужную часть данных и сохранить результат в новом файле. Такую операцию нетрудно выполнить, например, в редакторе Norton Disk Editor для MS-DOS.
Прослеживая цепочку блоков VCN, нужно определить расположение и размер экстентов восстанавливаемого файла. Далее с помощью приложения Disk Probe следует прочитать данные экстента, а затем сохранить их в файле на исправном диске. Не забудьте также, что в программе Disk Probe указывается количество секторов, которые нужно прочитать или записать, а в блоке VCN установлено количество кластеров, выделенных экстенту. Поэтому нужно выполнить соответствующий пересчет.
Восстановив все экстенты, объедините их в один файл (например, командой COPY с параметром /B). Затем установите правильную длину файла, полученную из поля со смещением 30 атрибута данных. В разделе FAT такая операция может быть выполнена с помощью все той же программы Norton Disk Editor.
К сожалению, на практике восстановление большого количества файлов требует много времени. Тяжелее всего дается ручная обработка цепочек блоков VCN, которые могут быть очень длинными. Приходится часами работать с калькулятором, переводя десятичные числа в шестнадцатеричные и обратно, а также производя различные арифметические действия, необходимые для определения размеров и расположения экстентов восстанавливаемых файлов. Поэтому обычно мы пользуемся небольшой самодельной программой NTFS Explorer, выполняющей наиболее трудоемкие операции в полуавтоматическом режиме.
В предыдущей статье мы описали алгоритм работы программ по восстановлению данных, работающих на дисках, использующих файловую систему FAT . Сегодня мы расскажем о том, как работает восстановление удалённых файлов с дисками, отформатированными в файловой системе NTFS .
Восстановление поврежденной таблицы файлов
Файловая система «exFAT»
«exFAT» – это сокращенное обозначение от полного английского названия «Extended File Allocation Table» ( «расширенная таблица размещения файлов» ). Стандарт является обновленной версией файловой системы «FAT32» , созданный корпорацией «Microsoft» . Основными параметрами система «exFAT» чрезвычайно похожа на «FAT32» . Но главным отличием является устранение ограничений, присутствующих в файловой системе «FAT32» , что позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта.
Также в файловой системе «exFAT» значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации, что особенно важно для флэш-накопителей, ввиду необратимого изнашивания ячеек после определённого количества операций записи, и улучшен механизм распределения свободного места.
Файловая система «FAT»
Сокращенная аббревиатура «FAT» расшифровывается как «таблица размещения файлов» . Это простая классическая архитектура файловой системы, изначально предназначенная для небольших дисков и простых структур папок. Иными словами, файловая система «FAT» представляет собой групповой метод организации, в котором таблица размещения файлов выделена в отдельную логическую область и находится в начале тома. Для исключения непреднамеренных или случайных ошибок, способных повлиять на корректное отображение таблицы, система, в целях безопасности, хранит копию массива индексных указателей.
Что представляют собой файловые системы «FAT» , «FAT32» , «exFAT» и «NTFS»
Операционная система «Windows» , как самый массовый представитель систем управления компьютерными устройствами в мире, настроена на взаимодействие с различными файловыми системами ( «NTFS» и «FAT» ), но «NTFS» поддерживает большие размеры файлов и томов и обеспечивает более эффективную организацию данных, по сравнению с другими вариантами файловых систем.
И несмотря на общие цели, файловые системы «NTFS» и «FAT» различаются методами организации и хранения данных на диске, а также указанием типов атрибутов, прикрепленных к файлам. И далее мы представим непосредственное описание конкретных файловых систем.
Формат записи MFT
Формально размер записи MFT определяется переменной в загрузочном секторе. Однако все существующие версии Microsoft Windows используют записи размером 1024 байт. В начале записи расположен заголовок размером 42 байта, который содержит 12 полей. Остальные 982 байта не имеют фиксированной структуры и используются для хранения атрибутов.
Формат записи MFT чрезвычайно прост и очень удобен как для быстрой работы операционной системы, так и для поиска удалённых файлов. Фактически запись MFT представляет с собой небольшую ячейку, позволяющую положить в неё всё, что угодно – но в пределах её размера (982 байта). Начало записи зарезервировано для «этикетки», позволяющей корректно идентифицировать и адресовать ячейку.
Проблемы с диском
Жесткие диски имеют ограниченный срок службы, обычно — несколько лет. Выход устройства из строя иногда можно определить по характерным щелчкам в момент инициализации. Диск может несколько раз щелкнуть и затихнуть, так и не раскрутившись. При инициализации BIOS сообщит вам об этой неисправности. В такой ситуации следует произвести ремонт жесткого диска. Если стоимость потерянной информации заметно превышает стоимость самого диска, следует обратиться к специалистам, что, впрочем, недешево.
Ремонт выполняется следующим образом. Если из строя вышла электроника, расположенная вне герметичного пространства диска, то заменяется или ремонтируется соответствующая плата. Для этого часто приходится разбирать другой диск точно такого же типа.
В том случае, когда повреждены детали, расположенные внутри корпуса диска, проблем будет больше. Прежде всего, разбирать сломанный диск нужно в так называемой «чистой комнате», где гарантируется отсутствие пыли. Затем следует заменить плату с электроникой, сняв ее с другого диска. Отремонтированный диск закрывается, после чего остается только скопировать информацию на третий диск по секторам.
Поэтому если сломался жесткий диск с ценной информацией, приготовьтесь пожертвовать еще одним для ремонта и найдите третий для копирования восстановленных данных.
Если есть подозрение на неисправность контроллера диска, попробуйте его заменить. Проверьте также соединительный кабель.
Определение геометрии логического устройства
Для успешного восстановления информации следует определить размер кластера и адрес загрузочного сектора. Первое значение можно получить из загрузочного сектора раздела NTFS (если, конечно, его содержимое сохранилось).
Запустите программу Disk Probe. Выберите в меню Drive позицию Physical Drive. В панели Open Physical Drive, появившейся на экране, укажите устройство PhysicalDrive1, дважды щелкнув левой клавишей мыши по соответствующей строке списка Available Physical Drives. Затем нажмите кнопку Set Active, оставив включенным переключатель Read Only, и закройте панель кнопкой OK.
В результате программа Disk Probe получит доступ на чтение поврежденного диска. После этого попытайтесь прочитать содержимое главной загрузочной записи диска, расположенной в первом секторе на нулевой дорожке нулевого цилиндра. Для этого в меню Sectors выберите строку Read. Появится панель Read Sector. В поле Starting Sector укажите номер первого сектора, равный нулю, а в поле Numbers of Sectors установите значение 1. Затем нажмите кнопку Read.
Программа считает в оперативную память содержимое первого сектора и покажет его в шестнадцатеричном виде. Выберите из меню View строку Partition Table для форматного просмотра таблицы разделов диска, а затем перейдите на нужный раздел с помощью кнопки Go. Если необходимо (когда восстанавливаются файлы из расширенного раздела), повторите эту процедуру несколько раз.
Здесь содержатся все сведения о геометрии восстанавливаемого раздела. В частности, размер кластера в секторах находится в поле Sectors per cluster. Кроме того, здесь приведены номера кластеров основной и резервной таблицы MFT (поля Clusters to MFT и Clusters to MFT mirr соответственно).
Эта ситуация тяжелая, но не фатальная. Подробную таблицу соответствия емкости логического устройства NTFS и числа кластеров можно найти в MSDN. Например, если емкость находится в интервале 1025 — 2048 Мбайт, размер кластера будет равен 4 секторам, а если в диапазоне от 8193 до 16 384 Мбайт — то в одном кластере будет 32 сектора. Заметим, однако, что, позаботившись заранее о возможности последующего восстановления диска в случае его повреждения, можно облегчить такую работу, когда в ней возникнет необходимость. Нужно определить и записать размер кластера сразу после установки ОС, пока загрузочный сектор NTFS еще цел.
В том случае, если размер кластера так и остался неизвестным, его придется определять косвенными способами или методом подбора.
Что такое главная таблица файлов?
Главная или Общая таблица файлов диска (Master File Table, MFT) — документ, хранящийся исключительно в файловой системе NTFS. Он является важнейшим винтиком в механизме работы данной системы, поскольку хранит в себе такую информацию как размер, дату и время записи, содержимое файлов.
Любой документ, загружаемый в NTFS, будет записан и в MFT. В случае удаления, файловое пространство будет помечено как свободное и находящееся в ожидании дальнейшей перезаписи. Если же главная таблица файлов была повреждена, все документы в разделе NTFS станут недоступными.
«FAT»
- Не совместим с последней версией операционной системы «Windows» .
- Поддержка дисков от тридцати двух мегабайт до двух терабайт.
- Более сильные преимущества и результативные особенности инструментов для восстановления.
- Поддерживает быструю проверку работоспособности диска.
- Простой способ размещения операционной системы и быстрый алгоритм чтения файлов.
- Быстрее функционирует на дисках объемом менее десяти гигабайт.
- Цепочки кластеров, содержащие данные из прерванных копий, помечаются как поврежденные.
- Таблица основных файлов отделена от других файлов.
Резидентные файлы
Файлы небольшого размера размещаются непосредственно в записи MFT, описывающей этот файл, для сокращения времени доступа. Если в байте со смещением 8 относительно начала атрибута данных находится нулевое значение, то не нужно прослеживать цепочки блоков VCN. Это означает, что файл находится внутри атрибута данных.
При этом смещение резидентных данных, т. е. файла, записано в двухбайтовом слове со смещением 14 относительно начала атрибута данных, а размер — в двухбайтовом слове со смещением 10.
Приведем небольшой пример. Для иллюстрации формата записи MFT, содержащей резидентный атрибут данных, мы подготовили маленький файл с именем Small.txt, содержащий текстовую строку «This is a small text file.». Затем с помощью программы Disk Probe мы обнаружили запись таблицы MFT, созданную для этого файла (рис. 6).
Здесь атрибут данных начинается со смещением 0160 относительно начала записи MFT. Байт со смещением 8 внутри этого атрибута (выделен зеленым цветом) равен нулю, следовательно, мы имеем дело с резидентным атрибутом.
Как видно из рис. 6, байты файла Small.txt (выделенные желтым цветом) находятся внутри записи MFT со смещением 18 относительно начала атрибута данных, а размер файла составляет 1A байт.
Крис Касперски
Известный российский хакер. Легенда ][, ex-редактор ВЗЛОМа. Также известен под псевдонимами мыщъх, nezumi (яп. 鼠, мышь), n2k, elraton, souriz, tikus, muss, farah, jardon, KPNC.
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Читайте также: