Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
BIOS parameter block
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Data structure in the volume boot record}} {{Use dmy dates|date=April 2019|cs1-dates=y}} {{Use list-defined references|date=January 2022}} In [[computing]], the '''BIOS parameter block''', often shortened to '''BPB''', is a [[data structure]] in the [[volume boot record]] (VBR) describing the physical layout of a [[Computer data storage|data storage]] [[Volume (computing)|volume]]. On partitioned devices, such as [[hard disk drive|hard disks]], the BPB describes the volume partition, whereas, on unpartitioned devices, such as [[floppy disk]]s, it describes the entire medium. A basic BPB can appear and be used on any partition, including floppy disks where its presence is often necessary; however, certain filesystems also make use of it in describing basic filesystem structures. Filesystems making use of a BIOS parameter block include [[FAT12]] (except for in DOS 1.x), [[FAT16]], [[FAT32]], [[High Performance File System|HPFS]], and [[NTFS]]. Due to different types of fields and the amount of data they contain, the length of the BPB is different for FAT16, FAT32, and NTFS boot sectors.<ref name="Microsoft"/> (A detailed discussion of the various FAT BPB versions and their entries can be found in the [[FAT BPB|FAT]] article.) Combined with the 11-byte data structure at the very start of volume boot records immediately preceding the BPB or EBPB, this is also called '''FDC descriptor''' or '''extended FDC descriptor''' in ECMA-107 or ISO/IEC 9293 (which describes FAT as for flexible/floppy and optical disk cartridges). == FAT12 / FAT16 == === DOS 2.0 BPB === <!-- Header used in local links --> {{Main|DOS 2.0 BPB}} Format of standard DOS 2.0 BPB for [[FAT12]] (13 bytes): {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || WORD || Bytes per logical sector |- | <code>0x00D</code> || <code>0x02</code> || BYTE || Logical sectors per cluster |- | <code>0x00E</code> || <code>0x03</code> || WORD || Reserved logical sectors |- | <code>0x010</code> || <code>0x05</code> || BYTE || Number of FATs |- | <code>0x011</code> || <code>0x06</code> || WORD || Root directory entries |- | <code>0x013</code> || <code>0x08</code> || WORD || Total logical sectors |- | <code>0x015</code> || <code>0x0A</code> || BYTE || Media descriptor |- | <code>0x016</code> || <code>0x0B</code> || WORD || Logical sectors per FAT |} === {{anchor|DOS 2.11 BPB}}DOS 3.0 BPB === <!-- Header used in local links --> {{Main|DOS 3.0 BPB}} Format of standard DOS 3.0 BPB for [[FAT12]] and [[FAT16]] (19 bytes), already supported by some versions of MS-DOS 2.11:<ref name="Microsoft_2014_Altos"/> {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 13 BYTEs || [[#DOS 2.0 BPB|DOS 2.0 BPB]] |- | <code>0x018</code> || <code>0x0D</code> || WORD || Physical sectors per track |- | <code>0x01A</code> || <code>0x0F</code> || WORD || Number of heads |- | <code>0x01C</code> || <code>0x11</code> || WORD || Hidden sectors (incompatible with [[#DOS 3.31 BPB|DOS 3.31 BPB]]) |} === DOS 3.2 BPB === {{Main|DOS 3.2 BPB}} Format of standard DOS 3.2 BPB for [[FAT12]] and [[FAT16]] (21 bytes): {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 19 BYTEs || [[#DOS 3.0 BPB|DOS 3.0 BPB]] |- | <code>0x01E</code> || <code>0x13</code> || WORD || Total sectors (incompatible with [[#DOS 3.31 BPB|DOS 3.31 BPB]]) |} === DOS 3.31 BPB === <!-- Header used in local links --> {{Main|DOS 3.31 BPB}} Format of standard DOS 3.31 BPB for [[FAT12]], [[FAT16]] and [[FAT16B]] (25 bytes): {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 13 BYTEs || [[#DOS 2.0 BPB|DOS 2.0 BPB]] |- | <code>0x018</code> || <code>0x0D</code> || WORD || Physical sectors per track (identical to [[#DOS 3.0 BPB|DOS 3.0 BPB]]) |- | <code>0x01A</code> || <code>0x0F</code> || WORD || Number of heads (identical to DOS 3.0 BPB) |- | <code>0x01C</code> || <code>0x11</code> || DWORD || Hidden sectors (incompatible with DOS 3.0 BPB) |- | <code>0x020</code> || <code>0x15</code> || DWORD || Large total logical sectors |} === DOS 3.4 EBPB === {{Main|DOS 3.4 EBPB}} Format of PC DOS 3.4 and OS/2 1.0-1.1 Extended BPB for [[FAT12]], [[FAT16]] and [[FAT16B]] (32 bytes): {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 25 BYTEs || [[#DOS 3.31 BPB|DOS 3.31 BPB]] |- | <code>0x024</code> || <code>0x19</code> || BYTE || Physical drive number |- | <code>0x025</code> || <code>0x1A</code> || BYTE || Flags etc. |- | <code>0x026</code> || <code>0x1B</code> || BYTE || Extended boot signature (<code>0x28</code> aka "4.0") (similar to [[#DOS 4.0 EBPB|DOS 4.0 EBPB]] and [[#NTFS EBPB|NTFS EBPB]]) |- | <code>0x027</code> || <code>0x1C</code> || DWORD || [[Volume serial number]] |} == FAT12 / FAT16 / HPFS == === DOS 4.0 EBPB === {{Main|DOS 4.0 EBPB}} Format of DOS 4.0 and OS/2 1.2 Extended BPB for [[FAT12]], [[FAT16]], [[FAT16B]] and [[High Performance File System|HPFS]] (51 bytes): {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 25 BYTEs || [[#DOS 3.31 BPB|DOS 3.31 BPB]] |- | <code>0x024</code> || <code>0x19</code> || BYTE || Physical drive number (identical to [[#DOS 3.4 EBPB|DOS 3.4 EBPB]]) |- | <code>0x025</code> || <code>0x1A</code> || BYTE || Flags etc. (identical to DOS 3.4 EBPB) |- | <code>0x026</code> || <code>0x1B</code> || BYTE || Extended boot signature (<code>0x29</code> aka "4.1") (similar to DOS 3.4 EBPB and [[#NTFS EBPB|NTFS EBPB]]) |- | <code>0x027</code> || <code>0x1C</code> || DWORD || Volume serial number (identical to DOS 3.4 EBPB) |- | <code>0x02B</code> || <code>0x20</code> || 11 BYTEs || [[Volume label]] |- | <code>0x036</code> || <code>0x2B</code> || 8 BYTEs || File-system type |} == FAT32 == === DOS 7.1 EBPB === {{Main|DOS 7.1 EBPB}} Format of short DOS 7.1 Extended BIOS Parameter Block (60 bytes) for [[FAT32]]: {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 25 BYTEs || [[#DOS 3.31 BPB|DOS 3.31 BPB]] |- | <code>0x024</code> || <code>0x19</code> || DWORD || Logical sectors per FAT |- | <code>0x028</code> || <code>0x1D</code> || WORD || Mirroring flags etc. |- | <code>0x02A</code> || <code>0x1F</code> || WORD || Version |- | <code>0x02C</code> || <code>0x21</code> || DWORD || Root directory cluster |- | <code>0x030</code> || <code>0x25</code> || WORD || Location of FS Information Sector |- | <code>0x032</code> || <code>0x27</code> || WORD || Location of backup sector(s) |- | <code>0x034</code> || <code>0x29</code> || 12 BYTEs || Reserved (Boot file name) |- | <code>0x040</code> || <code>0x35</code> || BYTE || Physical drive number |- | <code>0x041</code> || <code>0x36</code> || BYTE || Flags etc. |- | <code>0x042</code> || <code>0x37</code> || BYTE || Extended boot signature (<code>0x28</code>) |- | <code>0x043</code> || <code>0x38</code> || DWORD || Volume serial number |} Format of full DOS 7.1 Extended BIOS Parameter Block (79 bytes) for [[FAT32]]: {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 25 BYTEs || [[#DOS 3.31 BPB|DOS 3.31 BPB]] |- | <code>0x024</code> || <code>0x19</code> || DWORD || Logical sectors per FAT |- | <code>0x028</code> || <code>0x1D</code> || WORD || Mirroring flags etc. |- | <code>0x02A</code> || <code>0x1F</code> || WORD || Version |- | <code>0x02C</code> || <code>0x21</code> || DWORD || Root directory cluster |- | <code>0x030</code> || <code>0x25</code> || WORD || Location of FS Information Sector |- | <code>0x032</code> || <code>0x27</code> || WORD || Location of backup sector(s) |- | <code>0x034</code> || <code>0x29</code> || 12 BYTEs || Reserved (Boot file name) |- | <code>0x040</code> || <code>0x35</code> || BYTE || Physical drive number |- | <code>0x041</code> || <code>0x36</code> || BYTE || Flags etc. |- | <code>0x042</code> || <code>0x37</code> || BYTE || Extended boot signature (<code>0x29</code>) |- | <code>0x043</code> || <code>0x38</code> || DWORD || Volume serial number |- | <code>0x047</code> || <code>0x3C</code> || 11 BYTEs || Volume label |- | <code>0x052</code> || <code>0x47</code> || 8 BYTEs || File-system type |} == {{anchor|NTFS EBPB}}NTFS == {{main|NTFS#Partition Boot Sector (PBS)}} Format of Extended BPB for [[NTFS]] (73 bytes): {| class="wikitable" |- ! Sector offset ! BPB offset ! Field length ! Description |- | <code>0x00B</code> || <code>0x00</code> || 25 BYTEs || [[#DOS 3.31 BPB|DOS 3.31 BPB]] |- | <code>0x024</code> || <code>0x19</code> || BYTE || Physical drive number (identical to [[#DOS 3.4 EBPB|DOS 3.4 EBPB]]) |- | <code>0x025</code> || <code>0x1A</code> || BYTE || Flags etc. (identical to DOS 3.4 EBPB) |- | <code>0x026</code> || <code>0x1B</code> || BYTE || Extended boot signature (<code>0x80</code> aka "8.0") (similar to DOS 3.4 EBPB and [[#DOS 4.0 EBPB|DOS 4.0 EBPB]]) |- | <code>0x027</code> || <code>0x1C</code> || BYTE || Reserved |- | <code>0x028</code> || <code>0x1D</code> || QWORD || Sectors in volume |- | <code>0x030</code> || <code>0x25</code> || QWORD || MFT first cluster number |- | <code>0x038</code> || <code>0x2D</code> || QWORD || MFT mirror first cluster number |- | <code>0x040</code> || <code>0x35</code> || DWORD || MFT record size |- | <code>0x044</code> || <code>0x39</code> || DWORD || Index block size |- | <code>0x048</code> || <code>0x3D</code> || QWORD || Volume serial number |- | <code>0x050</code> || <code>0x45</code> || DWORD || Checksum |} == exFAT BPB== [[exFAT]] does not use a BPB in the classic sense. Nevertheless, the [[volume boot record]] in sector 0 is organized similarly to BPBs.<ref name="exFAT"/> {| class="wikitable" |- ! Sector offset ! Field length (bytes) ! Description |- | <code>0x000</code> || 3 || JumpBoot. Must be 0xEB, 0x76, 0x90. |- | <code>0x003</code> || 8 || Filesystem name. Must be {{mono|"EXFAT "}}. |- | <code>0x00B</code> || 53 || Blank (traditional BPB area). Must be all zero. |- <!-- to be filled --> |} ==See also== * [[FAT BPB|BPB formats in the FAT file systems]] * [[MDBPB]] ([[Microsoft DoubleSpace BPB]]) ==References== {{reflist|refs= <ref name="Microsoft">{{cite book |author=Microsoft |author-link=Microsoft |title=Microsoft Windows 2000 Server Operations Guide |publisher=[[Microsoft Press]]}}</ref> <ref name="Microsoft_2014_Altos">{{cite web |author-first1=Tim |author-last1=Paterson |author-link1=Tim Paterson |author2=Microsoft |author-link2=Microsoft |title=Microsoft DOS V1.1 and V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM |url=http://www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0/ |publisher=[[Computer History Museum]], [[Microsoft]] |date=2013-12-19<!-- 2014-03-25 --> |orig-date=1983-05-17 |access-date=2014-03-25 |url-status=live |archive-url=https://web.archive.org/web/20170909160351/http://www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0/ |archive-date=2017-09-09}} (NB. While the publishers claim this would be MS-DOS 1.1 and 2.0, it actually is [[SCP MS-DOS 1.25]] and a mixture of [[Altos MS-DOS 2.11]] and [[TeleVideo PC DOS 2.11]].)</ref> <ref name="exFAT">{{cite web |title=exFAT Filesystem |website=elm-chan.org |url=http://elm-chan.org/docs/exfat_e.html}}</ref> }} == Further reading == * {{cite web |url=http://jdebp.info/FGA/bios-parameter-block.html |author-first=Jonathan |author-last=de Boyne Pollard |title=All about BIOS Parameter Blocks |work=Frequently Given Answers |url-status=live |access-date=2016-04-18 |archive-url=https://web.archive.org/web/20170909162516/http://jdebp.eu/FGA/bios-parameter-block.html<!-- https://web.archive.org/web/20160418234428/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html --> |archive-date=2017-09-09}} — a description of BPBs, from version 2.0 to version 7.0 * {{cite book |title=Developing applications using DOS |chapter=9: DOS Disk Usage |author-first1=Ken W. |author-last1=Christopher |author-first2=Barry A. |author-last2=Feigenbaum |author-first3=Shon O. |author-last3=Saliga |publisher=[[John Wiley & Sons|Wiley]] |date=1990 |isbn=0-471-52231-7}} — In the "processing the BIOS parameter block" section the authors describe the evolution of the BIOS parameter block from the MS-DOS version 2.0 BPB to the PC DOS version 4.0 BPB, and label each field with the DOS version that introduced it. * {{cite book |title=Advanced MS-DOS Expert Techniques for programmers |author-first=Carl |author-last=Townsend |chapter=4: Disk organization and management |publisher=[[Howard M. Sams]] |date=1989 |isbn=0-672-22667-7}} — Figure 4.3 contains a diagram of the version 4.0 BPB and states that the layout of BPBs "is not defined by Microsoft and can vary with different vendors". At the time that the book was written, this was true. Microsoft first publicly documented the BPB structure in the OS/2 Developers' Toolkit. * {{cite web |author-first=Alex |author-last=Verstak |date=1998-03-10 |url=http://averstak.tripod.com/fatdox/bootsec.htm |title=FAT Boot Sector |url-status=live |archive-url=https://web.archive.org/web/20160730212635/http://averstak.tripod.com/fatdox/bootsec.htm |archive-date=2016-07-30}} — Verstak reverse engineers the BIOS parameter block. The paper contains several errors. One such is its statement that "the presence of the EBPB in FAT32 is not documented by Microsoft". See: ** {{cite web |url=http://www.microsoft.com/technet/archive/win98/reskit/part2/wrkc10.mspx |author=Microsoft |author-link=Microsoft |work=Microsoft Windows 98 Resource Kit |title=Chapter 10 - Disks and File Systems |access-date=2017-09-09 |url-status=live |archive-url=https://web.archive.org/web/20170909145511/https://technet.microsoft.com/library/cc768180.aspx |archive-date=2017-09-09}} — Microsoft documents a version 4.0 BPB and a new "FAT32 BIOS Parameter Block (BPB)" (a version 7.0 BPB) for DOS-Windows 98 that is "larger than a standard BPB", has an "identical structure to a standard BPB", but that also "includes several extra fields". ** {{cite web |url=http://www.microsoft.com/technet/prodtechnol/Windows2000Pro/reskit/part7/proch32.mspx |author=Microsoft |author-link=Microsoft |work=Microsoft Windows 2000 Professional Resource Kit |title=Chapter 32 - Disk Concepts and Troubleshooting |url-status=dead |access-date=2006-06-01 |archive-url=https://web.archive.org/web/20060810171002/http://www.microsoft.com/technet/prodtechnol/Windows2000Pro/reskit/part7/proch32.mspx |archive-date=2006-08-10}} — Microsoft documents extended BPBs on both FAT16 and FAT32 volumes. It also documents BPBs on NTFS volumes. * {{cite web|url=https://technet.microsoft.com/en-us/library/cc781134%28WS.10%29.aspx |author=Microsoft |author-link=Microsoft |work=Microsoft Windows Server 2003 NTFS Technical Reference |title=How NTFS Works |url-status=live |archive-url=https://web.archive.org/web/20160730212559/https://technet.microsoft.com/en-us/library/cc781134%28WS.10%29.aspx |archive-date=2016-07-30}} — The table "BPB and Extended BPB Fields on NTFS Volumes" describes BPBs on NTFS volumes. The descriptions of several fields contradict those given in the Windows 2000 Resource Kit. * {{cite web |url=http://jdebp.info/FGA/volume-boot-block-oem-name-field.html |author-first=Jonathan |author-last=de Boyne Pollard |title=The meaning and use of the OEM Name field in volume boot blocks |work=Frequently Given Answers |access-date=2016-06-04 |url-status=live |archive-url=https://web.archive.org/web/20170909162834/http://jdebp.eu/FGA/volume-boot-block-oem-name-field.html<!-- https://web.archive.org/web/20160604095416/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/volume-boot-block-oem-name-field.html --> |archive-date=2017-09-09}} — an issue that affects BPBs * {{cite web |title=NOVOLTRK.REG |author-first=Matthias R. |author-last=Paul |date=2004-08-25 |work=www.drdos.org |url=http://www.ibiblio.org/pub/micro/pc-stuff/freedos/win9x/NOVOLTRK.ZIP |access-date=2011-12-17 |url-status=dead |archive-url=https://web.archive.org/web/20160304124755/http://www.ibiblio.org/pub/micro/pc-stuff/freedos/win9x/NOVOLTRK.ZIP |archive-date=2016-03-04}} [https://web.archive.org/web/20051111015142/http://public.www.planetmirror.com/pub/freedos/win9x/] * {{cite newsgroup |title=Need DOS 6.22 (Not OEM) |author-first=Matthias R. |author-last=Paul |date=2002-02-20 |newsgroup=alt.msdos.programmer |url=https://groups.google.com/d/msg/alt.msdos.programmer/MAv9LuYQjs8/HuYCph4KsQYJ |access-date=2006-10-14 |url-status=live |archive-url=https://archive.today/20170909145248/https://groups.google.com/forum/%23!msg/alt.msdos.programmer/MAv9LuYQjs8/HuYCph4KsQYJ |archive-date=2017-09-09}} — on the misuse of OEM labels and Microsoft's Volume Tracker * {{cite newsgroup |title=File System ID - "The alt.os.development boot sector descriptors standards committee" |author-first=Matthias R. |author-last=Paul |date=2002-08-12 |newsgroup=alt.os.development |url=https://groups.google.com/d/msg/alt.os.development/oSYdIbM7YdI/a4bLf1O7SXgJ |access-date=2019-07-29 |url-status=live |archive-url=https://web.archive.org/web/20220529153726/https://groups.google.com/g/alt.os.development/c/oSYdIbM7YdI/m/a4bLf1O7SXgJ |archive-date=2022-05-29}} * {{cite newsgroup |title=Cluster Size |author-first=Wally |author-last=Bass |date=1994-02-14 |newsgroup=comp.os.msdos.programmer |url=https://groups.google.com/d/msg/comp.os.msdos.programmer/ZGE7qkh4eI0/1vssg3Yt3nkJ |access-date=2006-10-14 |url-status=live |archive-url=https://archive.today/20170909144921/https://groups.google.com/forum/%23!msg/comp.os.msdos.programmer/ZGE7qkh4eI0/1vssg3Yt3nkJ |archive-date=2017-09-09}} * {{cite web |title=On OEM IDs |author-first=John C. |author-last=Elliott |version=1.3 |date=2006-04-17 |orig-date=2004-06-18 |work=Seasip.info |url=http://seasip.info/Misc/oemid.html |access-date=2019-07-29 |url-status=live |archive-url=https://web.archive.org/web/20190408094610/http://www.seasip.info/index.html |archive-date=2019-04-08}} * {{cite web |title=FDISK problems |author-first=Charles E. |author-last=Dye |date=1999-03-20 |work=delorie.com |url=http://www.delorie.com/archives/browse.cgi?p=opendos/1999/03/20/14:23:12 |access-date=2019-07-29 |url-status=live |archive-url=https://web.archive.org/web/20190729000416/http://www.delorie.com/archives/browse.cgi?p=opendos%2F1999%2F03%2F20%2F14%3A23%3A12 |archive-date=2019-07-29}} * {{cite web |title=I hope this is helpful about Microsoft and Caldera DR-DOS and OEM IDs |author=Anonymous |date=2004-06-15 |work=[[Groklaw]] |url=http://www.groklaw.net/comment.php?mode=display&sid=20040614232501302&type=article&order=&hideanonymous=0&pid=153641#c153662 |access-date=2019-07-29 |archive-url= |archive-date=<!-- |quote=I discovered a guy [Matthias R. Paul] who has learned a lot about this. I don't want to slashdot this quy, by giving a link. His site doesn't get much traffic. However, you can search for NOVOLTRK on Google to learn more on how to prevent Windows from changing the OEM IDs on your floppy disks. --> }}{{Dead link|date=October 2023 |bot=InternetArchiveBot |fix-attempted=yes }} * {{cite newsgroup |title=Evil :) DOS6 FAT |author-first=Jen |author-last=Kilmer |date=2013-05-21 |newsgroup=comp.os.os2.misc |url=https://groups.google.com/forum/?hl=la#!msg/comp.os.os2.misc/dxxRtZ_V-fU/YVvnukmtfvAJ |access-date=2019-07-29 |url-status=live |archive-url=https://web.archive.org/web/20220529153802/https://groups.google.com/g/comp.os.os2.misc/c/dxxRtZ_V-fU/m/YVvnukmtfvAJ |archive-date=2022-05-29}} [[Category:BIOS]] [[Category:DOS technology]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Cite book
(
edit
)
Template:Cite newsgroup
(
edit
)
Template:Cite web
(
edit
)
Template:Dead link
(
edit
)
Template:Main
(
edit
)
Template:Mono
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Use list-defined references
(
edit
)