Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Каталог в разделе NTFS.

Каталог в разделе NTFS.

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

Каждому файлу на NTFS соответствует обязательный элемент - запись в файле $MFT (размером в 1 Кбайт, их нумерация идет от нуля) в которой может находиться очень маленький файл, или блоки VCN определяющие порции файла (экстенты).

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

Внутренняя структура каталога представляет собой бинарное дерево. Бинарное дерево располагает имена файлов таким образом, чтобы поиск файла осуществлялся более быстрым способом - с помощью получения двухзначных ответов на вопросы о положении файла. Определяется в какой группе, относительно данного элемента, находится искомое имя - выше или ниже? Начинается все с среднего элемента, и каждый ответ сужает зону поиска в среднем в два раза. Файлы отсортированы по алфавиту, и ответ на вопрос осуществляется очевидным способом - сравнением начальных букв. Область поиска, суженная в два раза, начинает исследоваться аналогичным образом, начиная опять же со среднего. Главный каталог диска - корневой - ничем не отличается об обычных каталогов, кроме специальной ссылки на него из начала метафайла $MFT (5 запись файла $MFT — см. рис.1). В начале каталога расположены блоки определяющие метафайлы (отсортированные по алфавиту по начальной букве имени). Затем идут блоки определяющие пользовательские файлы и каталоги (отсортированные по алфавиту по начальной букве имени).

Рис. 1.

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

Возьмем блок VCN: 31 20 D98602. Размеры двух полей блока VCN определяют тетрады первого байта содержащего значение 31h (3 – определяет размер второго поля блока VCN (в байтах), а 1 – определяет размер первого поля блока VCN). Первое поле, имеющее длину один байт, хранит количество кластеров (20h), выделенных экстенту файла. Второе поле размером три байта содержит номер первого кластера данного экстента файла (0286D9h). Таким образом, в данном случае первому экстенту файла выделено 20h кластеров, а номер первого кластера для первого экстента равен 0286D9h. Таким образом, определяем размер и расположение первого экстента файла. Второй блок VCN расположен сразу вслед за первым, например: 12 2408 21. Для того чтобы определить первый кластер второго экстента, необходимо прибавить к адресу первого экстента смещение, указанное во втором блоке VCN (с учетом знака). В данном случае второй экстент размещен с кластера с номером: 0286D9+21=286FA. Длина второго экстента составляет 0824h кластера.

Анализируя остальные блоки VCN, можно определить размеры и расположение всех экстентов файла. Список блоков VCN закрывается байтом с нулевым (00) значением. Смотрим кластер с номером 161177h (рис. 2).

 

Рис. 2.

По блокам VCN находящимся в записи с номером 54FCh ( в атрибуте 80) можно прочитать экстенты (порции) файла, а если файл очень мал, то и сам файл, находящийся в этой записи ( в атрибуте 80).


Лицензия