Xbox Partitioning and Filesystem Details
From Xbox-Linux
(XBOX DISK LAYOUT v0.13 by Andrew de Quincey (mailto:adq@tardis.ed.ac.uk) and Lucien Murray-Pitts (mailto:lucien@tardis.ed.ac.uk))
Partitioning scheme
The Xbox uses a hard disk partitioning scheme that is hardwired into the kernel. The hard disk consists of a header, 3 game cache partitions, a system partition and a data partition:
For a detailed partitioning table refer to Xbox Hard Disk Partitioning
Disk Config Area
The first 512 KB of the Xbox hard disk form the "Disk Config Area", or, simply spoken, the header of the hard disk. The infomation stored in this area has only partially been decoded.
(Offsets are from start of disk)
Offset | Size | Description |
0x600 | 4 | "BRFR" |
0x604 | 4 | Number of boots |
0x608 | 4 | Unknown |
0x60c | 4 | Unknown |
Offset | Size | Description |
0x800 | 4 | Unknown |
0x804 | 4 | Unknown |
0x808 | 4 | Unknown |
0x80C | 4 | Unknown |
0x810 | 4 | Unknown |
0x814 | 4 | Unknown |
0x818 | 4 | Unknown |
0x81c | 4 | Unknown |
0x820 | 4 | Unknown |
0x824 | 4 | Unknown |
Offset | Size | Description |
0x1000 | 4 | Unknown |
0x1004 | 4 | Unknown |
0x1008 | 4 | Unknown |
0x100c | 4 | Unknown |
0x1010 | 4 | Unknown |
0x1014 | 4 | Unknown |
0x1018 | 4 | Unknown |
0x101c | 4 | Unknown |
Offset | Size | Description |
0x104c | 2 | Xbox Live Settings |
0x104e | 6 | Xbox Live MAC Address |
0x1054 | 4 | Xbox Live IP Address |
0x1058 | 4 | Xbox Live Subnet Mask |
0x105c | 4 | Xbox Live Default Gateway |
0x1060 | 4 | Xbox Live Primary DNS |
0x1064 | 4 | Xbox Live Secondary DNS |
0x1068 | 40 | Xbox Live Hostname |
0x1090 | 64 | Xbox Live PPPOE Username |
0x10d0 | 64 | Xbox Live PPPOE Password |
0x1100 | 40 | Padding? |
0x1138 | 40 | Xbox Live PPPOE Service Name |
If the disk config area is overwritten and the Xbox rebooted the ASCII string "BRFR" at 0x600 will be recreated. Thus the presence of the "BRFR" magic value can be used as a check to see if a hard drive is Xbox partitioned.
FATX Partition Header
(Offsets from start of FATX partition)
Offset | Size | Description |
0x0000 | 4 | “FATX” |
0x0004 | 4 | Volume ID (?) |
0x0008 | 4 | Cluster size in 512 byte sectors (?) |
0x000C | 2 | Number of active FATs (always 1) (?) |
0x000E | 4 | Unknown (always set to 0) |
0x0012 | 0xfee | Unknown (usually set to 0xff, or 0). Probably padding. |
0x1000 | Depends on size of partition, see below | Cluster chain map. This is a table of 2 byte or 4 byte entries,
one per cluster. The values of the entries are the ID of the NEXT cluster in the chain, or one of several special values:
|
0x1000 + cluster chain map size | 0x4000 |