BIOS Parameter Block BPB
Previous Topic  Next Topic 


The BIOS Parameter block is used to define the details of a logical partition.  The sector is pointed to from the entry in the partition table.  A very common location for the first BPB on a disk is sector 0x3F  (63).  For camera memory chips, sector 0x20  (32) is also common



000000   EB 52 90 4E 54 46 53 20 - 20 20 20 00 02 08 00 00    RNTFS      

000010   00 00 00 00 00 F8 00 00 - 3F 00 FF 00 3F 00 00 00           ? ?  

000020   00 00 00 00 80 00 80 00 - 98 FF 14 13 00 00 00 00           

000030   00 00 0C 00 00 00 00 00 - F9 4F 31 01 00 00 00 00            O1   

000040   F6 00 00 00 01 00 00 00 - 12 73 96 1C A6 96 1C 24          s$

000050   00 00 00 00 FA 33 C0 8E - D0 BC 00 7C FB B8 C0 07        3м |

000060   8E D8 E8 16 00 B8 00 0D - 8E C0 33 DB C6 06 0E 00       3

000070   10 E8 53 00 68 00 0D 68 - 6A 02 CB 8A 16 24 00 B4    S h  hjˊ$

000080   08 CD 13 73 05 B9 FF FF - 8A F1 66 0F B6 C6 40 66    sf@f

000090   0F B6 D1 80 E2 3F F7 E2 - 86 CD C0 ED 06 41 66 0F    р?Af

0000A0   B7 C9 66 F7 E1 66 A3 20 - 00 C3 B4 41 BB AA 55 8A    ff  ôAU

0000B0   16 24 00 CD 13 72 0F 81 - FB 55 AA 75 09 F6 C1 01    $ rUu 

0000C0   74 04 FE 06 14 00 C3 66 - 60 1E 06 66 A1 10 00 66    t f`f f

0000D0   03 06 1C 00 66 3B 06 20 - 00 0F 82 3A 00 1E 66 6A     f;  : fj

0000E0   00 66 50 06 53 66 68 10 - 00 01 00 80 3E 14 00 00     fPSfh  > 

0000F0   0F 85 0C 00 E8 B3 FF 80 - 3E 14 00 00 0F 84 61 00      >  a

000100   B4 42 8A 16 24 00 16 1F - 8B F4 CD 13 66 58 5B 07    B$ fX[

000110   66 58 66 58 1F EB 2D 66 - 33 D2 66 0F B7 0E 18 00    fXfX-f3f

000120   66 F7 F1 FE C2 8A CA 66 - 8B D0 66 C1 EA 10 F7 36    fŠff6

000130   1A 00 86 D6 8A 16 24 00 - 8A E8 C0 E4 06 0A CC B8     ֊$  ̸

000140   01 02 CD 13 0F 82 19 00 - 8C C0 05 20 00 8E C0 66       f

000150   FF 06 10 00 FF 0E 0E 00 - 0F 85 6F FF 07 1F 66 61      ofa

000160   C3 A0 F8 01 E8 09 00 A0 - FB 01 E8 03 00 FB EB FE    à  

000170   B4 01 8B F0 AC 3C 00 74 - 09 B4 0E BB 07 00 CD 10    < t  

000180   EB F2 C3 0D 0A 41 20 64 - 69 73 6B 20 72 65 61 64      A disk read

000190   20 65 72 72 6F 72 20 6F - 63 63 75 72 72 65 64 00     error occurred

0001A0   0D 0A 4E 54 4C 44 52 20 - 69 73 20 6D 69 73 73 69      NTLDR is missi

0001B0   6E 67 00 0D 0A 4E 54 4C - 44 52 20 69 73 20 63 6F    ng   NTLDR is co

0001C0   6D 70 72 65 73 73 65 64 - 00 0D 0A 50 72 65 73 73    mpressed   Press

0001D0   20 43 74 72 6C 2B 41 6C - 74 2B 44 65 6C 20 74 6F     Ctrl+Alt+Del to

0001E0   20 72 65 73 74 61 72 74 - 0D 0A 00 00 00 00 00 00     restart       

0001F0   00 00 00 00 00 00 00 00 - 83 A0 B3 C9 00 00 55 AA              U



Another example


000000   EB 3C 90 4D 53 44 4F 53 - 35 2E 30 00 02 01 02 00    <MSDOS5.0 

000010   02 00 02 60 F4 F8 F3 00 - 3F 00 FF 00 20 00 00 00     ` ?     

000020   00 00 00 00 00 00 29 B7 - E1 51 58 4E 4F 20 4E 41          )QXNO NA

000030   4D 45 20 20 20 20 46 41 - 54 31 36 20 20 20 33 C9    ME    FAT16   3



Two easy points to help recognise the sector are the terminating 0x55 0xAA characters, but also the operating system name starting at byte 3.  In the examples above these are NTFS and MSDOS5.0 


For FAT disks, you also expect to see FAT12  or FAT16  or FAT32 near the top of the sector


The first bytes of the sector are a JMP instruction so normally starts 0xEB



Logically, theFDC data starts at byte 0xB.  Full details can be found in FDC Descriptor for FAT or FDC Descriptor for NTFS