mbr structure. Size: 200. 000 1b8 code or fat: 00 3 jump instruction 03 8 OEM name 0b 2 bytes per sector 0d 1 sectors per cluster 0e 2 reserved sectors (incl. boot sector, from boot sector) 10 1 number of fats 11 2 non fat32: number of entries in root directory 13 2 total number of sectors on disk if < 32MB 15 1 media descriptor (bit 2 set means removable) 16 2 non fat32: sectors per fat 18 2 sectors per track 1a 2 heads 1c 4 number of sectors before boot sector 20 4 number of sectors on disk, if > 32MB 24 xx 4 sectors per fat 28 xx 2 bit 0-4: active fat, bit 7 set: write to all fats. 2a xx 2 file system version number 2c xx 4 cluster number for root directory 30 xx 2 sector number for FSInfo structure 32 xx 2 boot sector backup sector 34 xx c reserved 40 24 1 drive number 41 25 1 current head (dos internal) 42 26 1 boot signature (with 0x29, the next 3 fields are valid) 43 27 4 volume id 47 2b b volume label 52 36 8 file system type "FAT16 " / "FAT32 " / ... 1b8 004 disk signature 1bc 002 null 1be 010 partition 0 1ce 010 partition 1 1de 010 partition 2 1ee 010 partition 3 1fe 002 mbr signature: 55 aa. Partition structure. Size: 10. 0 1 bootable flag 00=no; 80=yes. 1 3 first sector in partition, chs 4 1 partition type 5 3 last sector in partition, chs 8 4 first sector in partition, lba c 4 number of sectors in partition, for lba CHS address. Size: 3. head = chs[0] sector = chs[1] & 0x3f cylinder = (chs[1] & 0xc0) << 2 | chs[2] Fat filesystem information sector. Size: 200. 000 4 signature: 52 52 61 41 004 1e0 unused 1e4 4 fsinfo signature: 72 72 41 61 1e8 4 number of free clusters 1ec 4 most recently allocated cluster 1f0 c reserved 1fc 2 unknown 1fe 2 boot record signature: 55 aa Directory entry. Size: 20. 00 8 name 08 3 extension 0b 1 attributes (00arshdv) 0c 1 0 0d 1 creation time: (milli?)seconds 0e 2 creation time: hour and minute 10 2 creation date 12 2 last accessed date 14 2 cluster[31:16] 16 2 time 18 2 date 1a 2 cluster[15:0] 1c 4 file size long file name: stored in directory entries immediately before the 8.3 name (last entry is first part of name) 00 1 ordinal field, bit 6 set means highest. 01 a 5 unicode characters. 0b 1 attribute: 000rsh0v. 0c 1 0 0d 1 checksum of short filename. 0e c 6 unicode characters. 1a 2 0 1c 4 2 unicode characters. checksum is name[0] rotated 11 times, name[1] 10 times, etc and all added up.