close

Вход

Забыли?

вход по аккаунту

?

report

код для вставкиСкачать
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет информационных технологий
и робототехники Кафедра "Программное обеспечение вычислительной
техники и автоматизированных систем"
ОТЧЕТ
о лабораторной работе № 6
Дисциплина
"Системное программирование"
Тема
"Файловая система NTFS"
Выполнил: студент гр. 107220 Гуцалюк И.О. Проверил: Разорёнов Н.А. Минск 2012
Цель работы:
Ознакомление со структурой и расположениемсистемной информации и данных на томе NTFS. Изучаемые вопросы
1. Структура BOOT.
2. Таблица файлов MFT.
3. Записи главной таблицы файлов (FILE RECORD).
4. Метафайлы.
5. Структура файла (небольшого и большого).
6. Атрибуты файла.
7. Каталоги в NTFS (структура).
8. Изучить алгоритм поиска расположения файлов на диске:
а) определение номера начального кластера расположения
файла на диске;
б) расчет номеров кластеров файла на диске;
9. Исследовать изменение элементов системных файлов NTFS
при выполнении команд COPY, MOVE, DEL, RENAME.
Постановка задачи
Разработать программу, которая выводит на экран:
1. Дамп 1-го сектора BOOT и расшифровывает структуру METADATABOOT.
2. Список атрибутов короткого файла и тело атрибута $DATA.
Файл создать любым текстовым редактором в кодировке ANSI, его содержание - две строки: первая - ФИО студента, вторая - дата его рождения.
B отчете привести дампы и расшифровать структуры метаданных (1-й сектор): BOOT, файл $MFT (индекс записи соответствует номеру варианта), записи файла $MFT, которые соответствуют короткому и длинному файлам, любой директорий (один сектор).
Ход выполнения работы
1. Загрузочная запись тома под NTFS (BOOT) является телом атрибута $DATA файла $Boot, содержит основную информацию о томе (логическом диске), такую как расположение MFT, количество секторов на кластер, всего секторов на томе, код загрузчика (NT Loader) и т. д.
На Рисунке 1:
1 - Jump instruction (3 bytes)
2 - OEM ID (8 bytes)
3 - BPB (25 bytes)
4 - Extended BPB (48 bytes)
5 - Bootstrap code (426 bytes)
6 - End of sector marker (2 bytes)
Рисунок 1 - обобщенная структура BOOT
Расшифрованный BPB и Extended BPB см. на Рисунке 2.
Рисунок 2 - BPB и Extended BPB
2. Таблица файлов MFT.
MFT является реляционной базой данных, которая состоит из ряда файлов записей и столбцов атрибутов файла. Она содержит по крайней мере одну запись для каждого файла тома NTFS, включая саму себя. Расположение таблицы MFT на диске изображено на Рисунке 3. Номер начального кластера MFT находится в Extended BPB (см. Рисунок 2). Структура таблицы схематично приводится на Рисунке 4.
Рисунок 3 - расположение таблицы MFT на NTFS разделе
Первая запись этой таблицы описывает непосредственно главную файловую таблицу. За ней следует зеркальная запись (mirror record) MFT. Местоположения сегментов данных MFT и зеркального файла MFT записаны в секторе начальной загрузки. Дубликат сектора начальной загрузки находится в логическом центре диска.
Рисунок 4 - Структура MFT
3. Записи главной таблицы файлов (FILE RECORD).
Каждая запись в MFT начинается с заголовка, за которым следует набор атрибутов (Рисунок 5). Признаком конца списка атрибутов является последовательность байт 0xFFFFFFFF.
Рисунок 5 - FILE RECORD
4. Метафайлы.
Поскольку MFT хранит информацию о себе, NTFS резервирует первые 16 записей в MFT для файлов метаданных (16 КБ), которые используются для описания MFT. Имена метафайлов начинаются со знака доллара ($). Метафайлы приведены в Таблице 1:
System FileFile NameMFT RecordPurpose of the FileMaster file table$Mft0Contains one base file record for each file and folder on an NTFS volume. If the allocation information for a file or folder is too large to fit within a single record, other file records are allocated as well.Master file table mirror$MftMirr1Guarantees access to the MFT in case of a single-sector failure. It is a duplicate image of the first four records of the MFT.Log file$LogFile2Contains information used by NTFS for faster recoverability. The log file is used by Windows Server 2003 to restore metadata consistency to NTFS after a system failure. The size of the log file depends on the size of the volume, but you can increase the size of the log file by using the Chkdsk command.Volume$Volume3Contains information about the volume, such as the volume label and the volume version.Attribute definitions$AttrDef4Lists attribute names, numbers, and descriptions.Root file name index.5The root folder.Cluster bitmap$Bitmap6Represents the volume by showing free and unused clusters.Boot sector$Boot7Includes the BPB used to mount the volume and additional bootstrap loader code used if the volume is bootable.Bad cluster file$BadClus8Contains bad clusters for a volume.Security file$Secure9Contains unique security descriptors for all files within a volume.Upcase table$Upcase10Converts lowercase characters to matching Unicode uppercase characters.NTFS extension file$Extend11Used for various optional extensions such as quotas, reparse point data, and object identifiers. 12-15Reserved for future use. Таблица 1 - Метафайлы
5. Структура файла (небольшого и большого).
Любой файл в системе NTFS представляется записью FILE RECORD в таблице MFT. Содержимое небольшого файла хранится в теле резидентного атрибута $DATA (0x80) непосредственно в файловой записи (Рисунок 6).
Рисунок 6 - Расположение содержимого небольшого файла
Для получения содержимого большого файла необходимо обратиться к кластерам, адреса которых указаны в теле нерезедентного атрибута $DATA в списке отрезков, начинающемся по смещению 0x40 (Рисунок 7).
Рисунок 7 - Расположение содержимого большого файла
Перейдя на адрес начального кластера файла, получаем содержимое файла (Рисунок 8)
Рисунок 8 - Содержимое большого файла
6. Атрибуты файла.
Список атрибутов файла находится в FILE RECORD в таблице MFT. Адрес смещения первого атрибута файла находится в его файловой записи по смещению 0x14 (Рисунок 9).
Рисунок 9 - Смещение первого атрибута файла
Каждый последующий атрибут в списке получается добавлением к смещению текущего атрибута его размера. Получить размер атрибута можно по смещению 0х4. Признаком конца списка атрибутов является последовательность 0xFFFFFFFF (см. Рисунок 5). Пример списка атрибутов файла приведен ниже на Рисунках 10-13.
Результаты работы программного обеспечения
Скриншот работающего программного обеспечения приведен на рисунке:
Рисунок ХХ - результат работы разработанного приложения
1. Выводы:
9.1. Самый первый сектор раздела называется Boot Record. В его составе также есть загрузочная программа и таблица BIOS Parameter Block (BPB).
9.2. Задача загрузчика в MBR - дать возможность загрузки модулей (файлов) операционной системы с нужного раздела (т. е. использовать несколько операционных систем).
9.3. Загрузочный сектор логического диска должен содержать в байте со смещением 0x1FE код 0x55, а в следующем байте (смещение 0x1FF) - код 0xAA. Указанные два байта являются признаком загрузочного диска.
9.4. FAT-таблица используется как таблица, связывающая отдельные кластеры файла. 2
Документ
Категория
Рефераты
Просмотров
31
Размер файла
170 Кб
Теги
report
1/--страниц
Пожаловаться на содержимое документа