FATX

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:05, 18 июня 2016.
FATX
Полное название Xbox FILE SYSTEM
Ограничения
Макс. размер тома 64GB
Макс. длина имени файла 42 symbols
Особенности
Диапазон дат December 1, 1980 – January 18, 2038
Дата резолюции 1 s

FATX - является слегка модифицированной версией FAT файловой системы и предназначена для регулирования работы жесткого диска диск и карты памяти в игровой консоли Xbox. Операционная система для игровой приставки Xbox — это очень сильно изменённая Windows 2000. Во время адаптирования к игровой приставке в Windows 2000 было изменено много кода, в части, отвечающей за работу с файловыми системами, поэтому операционную систему этой игровой приставки нельзя назвать принадлежащей к линейке Microsoft Windows.

Структура файловой системы

Файловая система разделена на 3 части:

  • Заголовок (загрузочный сектор в файловых системах FAT)
  • Таблица размещения файлов (FAT)
  • Корневой каталог кластера / область данных

Все значения многобайтовыми , содержащиеся в каждой части являются большой обратный порядок байт.

Разница между коммерческой и Development Kit версией HDD

Существенное различие между коммерческой версией и DevKit жестких дисков является то, что жесткие диски DevKit имеет таблицу разделов (длинной 0x18 байт) в начале диска. Таблица содержит информацию о секторе и длине для Content и DevKit схем-разделов. Эта таблица разделов существует только на DevKit версиях Xbox, коммерческая версия имеют корректоры, которые встроены в ядро.

Разметка USB-накопителя

В отличие от жестких дисков и других запоминающих устройств, с которыми изначально поставляется XBOX 360, USB - диски, USB-накопитель, который могут быть использованы с Xbox 360, содержат файлы, расположенные в скрытой папке "Xbox360", расположенной в корневом каталоге устройства. Файлы Data0000-Data0003 всегда присутствуют вне зависимо от того, каков размер устройства. Data0000 файл включает в себя кэш, информация о работе устройства и его геометрии (в основном только общий размер устройства). Data0001 содержит таблицу размещения файлов для раздела данных, который использует оставшиеся файлы.

Файл конфигурации

Конфигурация это первые 2 сектора (0x400 байтах) файла Data0000 и он создается, когда устройство настроено. Он содержит информацию об устройстве и имеет цифровую подпись. Схема выглядит следующим образом:

Тип 1 (размер сертификата = 0x228)
офсет длина описание
0 0x1A8 Консоль сертификата безопасности
0x1A8 0x80 Подпись (часть консоли CERT)
0x228 0x14 Идентификатор устройства
0x23C 4 (UInt32) Размер сертификата
0x240 8 (UInt64) Размер устройства в байтах
0x248 2 (UInt16) Скорость чтения в KB/s
0x24A 2 (UInt16) Скорость записи в KB/s
0x24C 0x1B4 0x1B4

Перетяжка (0x00)

Тип 2 (размер сертификата = 0x228)
офсет длина описание
0 0x100 Маркер-устройство
0x100 0xA8 Перетяжка (0x00)
0x228 0x14 Идентификатор устройства
0x23C 4 (UInt32) Размер сертификата
0x240 8 (UInt64) Размер устройства в байтах
0x248 2 (UInt16) Скорость чтения в KB/s
0x24С 2 (UInt16) Скорость записи в KB/s

Маркер является производной от SHA1 хэш-суммы, взятого с начала идентификатора устройства (0x228) до конца конфигурации (0x1D8 байт) и всегда подписан индивидуальным ключом консоли.

Размер сертификата используется для определения того, как проверить файл конфигурации, когда устройство установлено. Если значение 0x228, то устройство было настроено с помощью Xbox и подпись проверена с использованием Params в сертификате консоли, если значение является 0х100 то устройство было предварительно сконфигурированные с помощью Microsoft и проверяется с помощью открытого ключа SATA (также используется для проверки HDDSS).

Последние 2 значения записываются, когда устройство настроено, но неизвестно, как они используются в дальнейшем. Возможно, они можут быть использованы для определения того, что подключенное устройство обеспечит наилучшую производительность для кэширования.

Раздел заголовка

офсет длина тип информация
0x0 0x4 строка ASCII Partition Magic (XTAF)
0x4 0x4 неподписанные INT ID раздел
0x228 0x4 неподписанные INT Секторов в кластере
0x23C 0x4 неподписанные INT Корневой кластер каталог

SysExt Partition

SystemUpdate с ядром-версии 2.0.12611.0 (Kinect-панель приборов) представила новую систему для хранения Kinect/ Avatar системных файлов.Оно создает раздел под названием "SysExt" (SystemExtended),чтобы хранить эти файлы. Такой принцип можно назвать как раздела внутри другого раздела.

Сектор "Josh"

Сектор "Josh" находится на 4 - м секторе (0x800). Его цель в настоящее время неизвестна. Он может быть использован только для идентификации Xbox ,который ранее был отформатирован.

Сектор безопасности

Сектора безопасности используется Microsoft , чтобы убедиться , что жесткий диск является оригинальным продуктом Microsoft. Сектора безопасности содержита детали , такие как серийный номер диска и логотип Microsoft (чтобы остановить другие компании , использующие его) Она начинается на 16-й сектор на диске (0x2000).

Chainmap и каталоги

Чтобы найти смещение chainmap, нужно взять разницу в смещении позиции и добавить 4096 (0x1000) к ней. Каждая запись в chainmap является либо беззнаковым целочисленным значением без знака которое варьируется в зависимости от количества кластеров внутри перегородки.

Чтобы выработать размер кластера, нужно назначить сектор на значение Cluster и умножить его на 512 (0x200).

Чтобы определить количество кластеров, требуется разделить размер разделов на размер кластера, и это и есть число кластеров.

Если число кластеров ниже 65520 (0xFFF0), то привод использует 2 байта chainmap-записи, в противном случае он использует 4-байтовых записей-chainmap. Размером chainmap является размер записей chainmap, умноженный на число разделов кластера.

Для того чтобы получить кластеры смещения, вам необходимо выработать смещение области данных файла. Это определяется путем принятия chainmap смещения и добавив его размер к нему. Затем вы просто умножаете индекс кластера (минус 1) на размер кластера и добавляете его к файлу данных офсета.

Для того, чтобы получить кластер "chainmap entrys"-смещение, необходимо умножить индекс кластера по карте на размер цепи ввода и добавить к chainmap-смещению.

Файлы

Содержимое файла сохраняется в кластере, как указано chainmap и стартовом кластере. Если файл больше , чем один кластер, он хранится в нескольких кластерах. Если длина файла не кратна размеру кластера, то последний кластер используется лишь частично. Если файл охватывает более 1 кластер, следующий кластер должен быть определен путем нахождения записи текущего кластера в chainmap и использовать значение , как следующий кластер.

Директории

Каталоги хранятся в табличном формате. Поскольку каталоги являются обычными, они находятся в FAT и, следовательно, могут охватывать несколько кластеров. Это дает возможность иметь много файлов в одном каталоге. Каждая запись таблицы каталогов имеет длину 64 байт. Запись может быть установлена на всех байтах 0xFF, что означает, что эта запись не используется, и, вероятно, отмечает конец содержимого каталога.

Файлы флажков и поля даты и времени содержатся в том же формате, который используется в файловой системе FAT. Для времени, биты 15-11 представляют час, 10-5 минуты, 4-0 секунды. На сегодняшний день, биты 15-9 являются годами, 8-5 есть месяц, 4-0 это день.

Битовое пространство не используется, метка тома вместо этого хранятся в файле "name.txt" в корневом каталоге. Содержимое этого файла начинаtncz со смещения 0x2. Следующие символы встречаются в именах файлов XTAF от реальных образов дисков:

  • 0x20, 0x24, 0x2e (SPACE $.)
  • 0x30-0x39 (цифры 0-9)
  • 0x41-0x5a (буквы от A до Z)
  • 0x5f (_)
  • 0x61-0x7a (буквы от A до Z)

В отличие от файловой системы FAT, XTAF не имеет "." и ".." записей в таблицах каталога. Это означает, что единственная возможность перейти в родительский каталог, это запоминая его номер кластера.

Источники