Структура файловой системы NTFS
Задание 5. Исследовать внутреннюю структуру тома NTFS.
Указания к выполнению.
1. Для изучения внутренней структуры дисков существует множество программ. В этой лабораторной работе воспользуемся программой DiskExplorer for NTFS. Бесплатная оценочная версия доступна по адресу: http://www.runtime.org/diskexplorer.htm.
2. После установки и запуска программы (под учетной записью администратора) откроется главное окно:
В меню File выберите Drive… и в разделе Logical drives выделите Hard drive, соответствующий виртуальному диску:
Нажмите ОК и отобразится окно с загрузочным сектором (Boot sector) NTFS:
Дважды щелкните по надписи Boot sector (NTFS) или в меню Goto выберите Mft, программа перейдет к отображению файловых записей в таблице MFT:
Относительно каждой файловой записи программа показывает следующую информацию.
В первой строке:
- Sector – начальный сектор данной файловой записи: сверху – в шестнадцатеричном виде, снизу – в десятичном;
- Name – имя файла (или каталога);
- Type – тип файловой записи (файл или каталог);
- Attributes – DOS атрибуты файла (например, s – системный, h – скрытый); не путать с NTFS атрибутами;
- Size – размер всего файла в байтах (не только файловой записи); отображается в десятичном виде;
- Date – дата и время модификации файла (или каталога);
- 1st cluster – первый кластер файла, если он имеет нерезидентные атрибуты;
- NT Attributes – NTFS атрибуты (коды см. в лекции 17 "Файловая система NTFS").
Во второй строке:
- No – номер записи в MFT;
- Parent – номер записи в MFT для родительского каталога; например, для всех первых файлов в MFT этот номер будет равен 5 – номеру записи для корневого каталога (обозначается точкой);
- Run – список групп для нерезидентных файлов.
В крайней левой колонке таблицы (Sector) показывается номер сектора, в котором располагается начало файловой записи. Проверьте, что этот номер совпадает с номером сектора для $Mft в файле log.txt, полученным в предыдущем задании. В нашем примере этот номер равен 0x102A8.
Проверьте соответствие других записей в программе DiskExplorer и в файле log.txt.
Обратите внимание, что номера секторов в столбце Sector увеличиваются на 2, т.е. файловая запись занимает 2 сектора (1 КБ).
Задание 6. Изучить файловую запись для резидентного файла.
Указания к выполнению.
1. Найдите в списке файловых записей DiskExplorer запись для файла Test.txt:
Дважды щелкните на этой записи (или нажмите клавишу F7) – откроется окно файловой записи:
В этом окне три основных раздела:
- Structures – структура файловой записи. Показаны заголовок (Header) файловой записи и атрибуты; каждый атрибут имеет заголовок (Header) и тело (Body);
- Interpretation of data – интерпретация данных. Для текстового файла приведено его содержимое в текстовом виде;
- Raw data – содержимое файловой записи в виде набора байт (приведены шестнадцатеричные значения и ASCII коды).
2. При перемещении по пунктам в разделе Structures, в остальных двух разделах отображается соответствующая данному пункту информация. Например, на рисунке ниже приведена информация для заголовка файловой записи:
Изучите содержимое заголовка файловой записи и всех атрибутов. Определите способ хранения информации при помощи окна Raw data. Например, на рисунке ниже красным цветом в разделах Interpretation of data и Raw data выделено поле Length (Длина) для атрибута $STANDARD_INFORMATION, а синим цветом – поле Data status (Резидентность): значение 00 означает, что атрибут резидентный.
Информацию о структуре файловой записи NTFS можно найти в лекции 17 "Файловая система NTFS", а также в источниках [17; 5].
3. В теле атрибута $DATA ($80) найдите текст, хранящийся в файле.