Как FSINFO влияет на производительность вашего компьютера
Записи каталогов файловой системы FAT играют ключевую роль в организации данных на вашем устройстве. Узнайте, как эти записи влияют на производительность и безопасность вашей системы. В этой статье мы разберемся в структуре таблицы FAT, а также рассмотрим методы оптимизации записей каталогов для повышения эффективности хранения данных.
- Загрузочный сектор
- Структура FSINFO
- Таблица FAT
- Записи каталогов
- HEX редактор
- Вопросы и ответы
- Комментарии
Логический диск под управление FAT32 можно разделить на 3 логических части, которые идут последовательно друг за другом:
- Зарезервированная область;
- Область FAT;
- Область данных (содержит корневой каталог и содержимое файлов);
Рис.1 Физическая структура FAT.
Система FAT очень проста и условно в ней можно выделить 4 структуры:
Загрузочный сектор
Загрузочный сектор занимает 1 сектор (чаще всего 512 байт) и располагается в первом секторе. Давайте рассмотрим подробнее его содержимое.
Смещение | Размер | Описание | Обязательное |
---|---|---|---|
0 | 3 | Ссылка на загрузочный код | Нет |
3 | 8 | Метка ОС I | Нет |
11 | 2 | Сколько байт в секторе | Да |
13 | 1 | Сколько секторов в кластере II | Да |
14 | 2 | Размер резервной области в секторах | Да |
16 | 1 | Сколько копий FAT-таблицы | Да |
17 | 2 | Сколько объектов в корневом каталоге III | Да |
19 | 2 | Сколько секторов на диске IV | Да |
21 | 1 | Метка носителя V | Нет |
22 | 2 | Размер таблицы FAT в секторах III | Да |
24 | 2 | Сколько секторов в дорожке | Нет |
26 | 2 | Сколько головок | Нет |
28 | 4 | Сколько секторов перед началом раздела | Нет |
32 | 4 | Сколько секторов в кластере II | Да |
36 | 4 | Размер таблицы FAT в секторах | Да |
40 | 2 | Режим обновления VI | Да |
42 | 2 | Номер версии | Да |
44 | 4 | Кластер с корневым каталогом | Да |
48 | 2 | Сектор с FSINFO | Нет |
50 | 2 | Сектор с резервной копией загрузочного сектора |
Нет |
52 | 12 | Резерв | Нет |
64 | 1 | Номер диска | Нет |
65 | 1 | Не используется | Нет |
66 | 1 | Последовательность байт 0x29 VII | Нет |
67 | 4 | Серийный номер тома | Нет |
71 | 11 | Метка тома I | Нет |
82 | 8 | Метка | Нет |
90 | 420 | Резерв | Нет |
510 | 2 | Последовательность байт 0xAA55 | Нет |
Таб.1 Структура загрузочного сектора FAT.
- I В кодировке ASCII;
- II Задается степенью 2;
- III Использовалось для ранних версий FAT. Для FAT32 = 0;
- IV Если количество секторов на диске больше 65535, используется поле по адресу 32;
- V Для жестких дисков – 0xf8, для съемных – 0xf0;
- VI Если бит 7 равен 1, активна только одна копия FAT, индекс которой определяется разрядами 0-3. В противном случае все структуры FAT являются зеркальными копиями друг друга;
- VII Последовательность байт 0x29;
Информация из загрузочного сектора играет основополагающую роль в восстановлении удаленных файлов, поэтому его обнаружение чрезвычайно важно.
Структура FSINFO
Ссылка на начало структуры хранится в загрузочном секторе, размер составляет 1 сектор (обычно 512 байт). FAT использует FSINFO для алгоритма выделения свободных секторов диска.
Смещение | Размер | Описание | Обязательное |
---|---|---|---|
0 | 4 | Последовательность байт 0x41615252 |
Нет |
4 | 480 | Резерв | Нет |
484 | 4 | Последовательность байт 0x6147272 |
Нет |
488 | 4 | Сколько свободных кластеров | Нет |
492 | 4 | Следующий свободный кластер | Нет |
496 | 12 | Резерв | Нет |
508 | 4 | Последовательность байт 0xAA550000 |
Нет |
Таб.2 Структура данных FSINFO.
Поскольку FSINFO может не обновляться и все ее поля не обязательны, опираться на нее для извлечения данных мы не можем.
Таблица FAT
Файловая система может иметь несколько копий этой таблицы, точное количество таблиц и их размер указаны в загрузочном секторе. Обычно используется 2 копии, полностью дублирующие друг друга. Они располагаются последовательно, одна за другой, и имеют столько записей, сколько кластеров на диске.
В FAT32 структура состоит из записей размером 4 байта. Каждая запись соответствует кластеру на логическом диске и может принимать следующие значения:
- 0x000 0000 – если кластер свободен;
- 0x0fff fff7 – если кластер поврежден и не должен выделяться;
- 0x0fff fff8 – если кластер завершает файл или каталог;
- 0x000 0001 … 0x0fff fff6 – указатель на следующий кластер, занимаемый файлом или каталогом.
Чтение и анализ основной таблицы FAT и её копий позволяют выяснить, в каких кластерах хранится содержимое нужного файла.
Записи каталогов
Записи каталогов содержат имя, атрибуты файлов и каталогов, а также время создания, последнего доступа и редактирования объектов. Эта информация хранится в кластерах, выделенных родительскому каталогу, ссылку на который можно получить из загрузочного сектора.
Базовая структура (Simple File Name) поддерживает только короткие имена файлов (8 символов – имя и 3 символа – расширение). Для поддержки длинных имён файлов в добавление к базовой записи создаются дополнительные структуры (Long File Name). Записи LFN имеют размер 32 байта и предшествуют базовой записи.
Смещение | Размер | Описание | Обязательное |
---|---|---|---|
0 | 1 | Порядковый номер или последовательность байт 0xe5 I, II |
Да |
1 | 10 | Первые 5 символов имени файла I | Да |
11 | 1 | Последовательность байт 0x0f | Да |
12 | 1 | Резерв | Нет |
13 | 1 | Контрольная сумма | Да |
14 | 12 | Следующие 6 символов имени файла I | Да |
26 | 2 | Резерв | Нет |
28 | 4 | Следующие 2 символа имени файла I | Да |
Таб.3 Структура записи каталога Long File Name.
- I Имя файла хранится в Unicode;
- II FAT заменяет первый символ имени файла на 0xe5, если он удален.
Для хранения длинного имени файла может использоваться несколько структур LFN. Чтобы получить полное имя, нужно сложить все эти структуры. После дополнительных следует базовая запись каталога размером 32 байта.
Смещение | Размер | Описание | Обязательное |
---|---|---|---|
0 | 1 | Первый символ имени файла I, II | Да |
1 | 10 | Следующие 10 символов имени файла I | Да |
11 | 1 | Атрибуты III | Да |
12 | 1 | Резерв | Нет |
13 | 1 | Десятые доли секунды времени создания | Нет |
14 | 2 | Часы, минуты, секунды времени создания | Нет |
16 | 2 | Дата создания | Нет |
18 | 2 | Дата последнего обращения | Нет |
20 | 2 | Старшие 2 байта ссылки на первый кластер | Да |
22 | 2 | Часы, минуты, секунды времени модификации | Нет |
24 | 2 | Дата модификации | Нет |
26 | 2 | Младшие 2 байта ссылки на первый кластер | Да |
28 | 4 | Размер файла | Да |
Таб.4 Структура базовой записи каталога FAT.
- I Имя файла в кодировке ASCII;
- II FAT заменяет первый символ имени файла на 0xe5, если он удален;
- III Возможные атрибуты перечислены в таблице.
Значение | Описание |
---|---|
0x01 | Доступ только для чтения |
0x02 | Скрытый файл |
0x04 | Системный файл |
0x08 | Метка тома |
0x0f | Длинное имя файла |
0x10 | Каталог |
0x20 | Архивный файл |
Таб.5 Атрибуты.
Из базовой записи можно восстановить атрибуты файла, время создания и редактирования, а также ссылку на первый кластер содержимого.
HEX редактор
Продукты компании Hetman Software имеют встроенный HEX редактор, который позволяет быстро найти и просмотреть содержимое загрузочного сектора и его копии, записи FAT-таблицы, корневого каталога и области данных. Подробнее о том, как использовать эти таблицы и алгоритмы восстановления диска FAT, читайте у нас в блоге.
1. Простота и доступность. FAT является одной из самых простых и доступных файловых систем, поэтому она является предпочтительной для различных устройств, включая USB-флешки, карты памяти, съемные жесткие диски и т.д.
2. Поддержка различных операционных систем. FAT является универсальной файловой системой, которая поддерживается многими операционными системами, включая Windows, Mac OS, Linux, DOS и т.д.
3. Высокая скорость работы. FAT является одной из самых быстрых файловых систем, поэтому она предпочтительна для устройств, требующих высокой скорости работы.
4. Поддержка различных размеров файлов. FAT поддерживает файлы до 4 GB, что достаточно для большинства устройств.