Difference between revisions of "FATX"

From xboxdevwiki
Jump to: navigation, search
(Added preliminary FATX header table.)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
The file system used on the Xbox is [[FATX]], a variant of FAT16/32 developed by Microsoft specifically for the Xbox.
 
The file system used on the Xbox is [[FATX]], a variant of FAT16/32 developed by Microsoft specifically for the Xbox.
 +
 +
The [[Config Sector]] contains the filesystem magic number, some basic filesystem metadata, and Xbox Live account information.
 +
 +
== Header ==
 +
The header for FATX is similar to FAT12/16/32 but heavily trimmed down. The following parts are known:
 +
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Length
 +
! Contents
 +
! Notes
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Magic value ("FATX")
 +
| ASCII encoded.
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Serial of partition
 +
| Created using Xbox RTC, unknown if this must be unique to mount.
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Cluster size
 +
| The number of 512 byte chunks one cluster requires. Typically 32 on the internal HDD, 4 on [[Xbox Memory Unit|XMUs]].
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Directory/FAT cluster count
 +
| Typically 1, unknown if more are supported as in FAT12/16/32.
 +
|-
 +
| 0x10
 +
| 0x40
 +
| Partition name
 +
| UTF-16le encoded name for a partition. Must be double-zero padded. Used to name XMUs, adding one to the internal HDD does nothing visible in stock firmware, but is retained. Untested on temporary partitions.
 +
|}
  
 
== Implementations ==
 
== Implementations ==
Line 24: Line 62:
 
* Most up to date: [https://hackmd.io/DXo0p8VnQLy3XQ7YR1Ny_w?view The FATX filesystem]
 
* Most up to date: [https://hackmd.io/DXo0p8VnQLy3XQ7YR1Ny_w?view The FATX filesystem]
 
* Archive of the xbox-linux project from 2010: [https://web.archive.org/web/20100617022009/http://www.xbox-linux.org/wiki/Differences_between_Xbox_FATX_and_MS-DOS_FAT Differences between Xbox FATX and MS-DOS FAT]
 
* Archive of the xbox-linux project from 2010: [https://web.archive.org/web/20100617022009/http://www.xbox-linux.org/wiki/Differences_between_Xbox_FATX_and_MS-DOS_FAT Differences between Xbox FATX and MS-DOS FAT]
 +
* An [http://web.archive.org/web/20040616143741/http://www.xbox-linux.org/docs/hdpartfs.html older version of that document] including info about unknown (XBLA?) config sectors
 
* Private writings from 2002: [https://web.archive.org/web/20020617181617/http://www.tardis.ed.ac.uk:80/~lucien/computing/projects/xbox/XBOX-disk-layout.htm XBOX DISK LAYOUT v0.13]
 
* Private writings from 2002: [https://web.archive.org/web/20020617181617/http://www.tardis.ed.ac.uk:80/~lucien/computing/projects/xbox/XBOX-disk-layout.htm XBOX DISK LAYOUT v0.13]

Latest revision as of 04:08, 27 October 2025

The file system used on the Xbox is FATX, a variant of FAT16/32 developed by Microsoft specifically for the Xbox.

The Config Sector contains the filesystem magic number, some basic filesystem metadata, and Xbox Live account information.

Header

The header for FATX is similar to FAT12/16/32 but heavily trimmed down. The following parts are known:

Offset Length Contents Notes
0x0 0x4 Magic value ("FATX") ASCII encoded.
0x4 0x4 Serial of partition Created using Xbox RTC, unknown if this must be unique to mount.
0x8 0x4 Cluster size The number of 512 byte chunks one cluster requires. Typically 32 on the internal HDD, 4 on XMUs.
0xC 0x4 Directory/FAT cluster count Typically 1, unknown if more are supported as in FAT12/16/32.
0x10 0x40 Partition name UTF-16le encoded name for a partition. Must be double-zero padded. Used to name XMUs, adding one to the internal HDD does nothing visible in stock firmware, but is retained. Untested on temporary partitions.

Implementations

Name Platform Read/Write Description
Official Xbox Read/Write Official FATX implementation by Microsoft
fatxfs GNU/Linux, macOS Read-Only FUSE-based implementation

Further Reading