BIOSパラメータブロック

コンピューターにおいてBIOSパラメータブロック( BPBと略されることが多い)は、ボリュームブートレコード(VBR)内のデータ構造であり、データストレージボリュームの物理レイアウトを記述します。ハードディスクなどのパーティション化されたデバイスでは、BPBはボリュームパーティションを記述しますが、フロッピーディスクなどのパーティション化されていないデバイスでは、メディア全体を記述します。基本的なBPBは、フロッピーディスクなど、その存在がしばしば必要なパーティションに表示され、使用できます。ただし、特定のファイルシステムでは、基本的なファイルシステム構造を記述するためにも使用されます。BIOSパラメータブロックを使用するファイルシステムには、FAT12(DOS 1.xを除く)、FAT16FAT32HPFSNTFSなどがあります。フィールドの種類と含まれるデータ量が異なるため、BPBの長さはFAT16、FAT32、NTFSブートセクターによって異なります[1] (FAT BPBのさまざまなバージョンとそのエントリの詳細については、FATの記事を参照してください。) BPBまたはEBPBの直前のボリュームブートレコードの先頭にある11バイトのデータ構造と組み合わせると、これはECMA-107またはISO/IEC 9293(フレキシブル/フロッピーおよび光ディスクカートリッジ用のFATを記述)ではFDC記述子または拡張FDC記述子とも呼ばれます。

FAT12 / FAT16

DOS 2.0 BPB

FAT12(13バイト)用の標準DOS 2.0 BPBのフォーマット:

セクターオフセットBPBオフセットフィールド長説明
0x00B0x00ワード論理セクターあたりのバイト数
0x00D0x02バイトクラスターあたりの論理セクター数
0x00E0x03ワード予約済み論理セクター
0x0100x05バイトFATの数
0x0110x06ワードルートディレクトリエントリ
0x0130x08ワード論理セクター総数
0x0150x0Aバイトメディア記述子
0x0160x0BワードFATあたりの論理セクター数

DOS 2.00のすべてのバージョンがこの構造に準拠しているわけではありません。IBM PC-DOS 2.00では、この領域に、ブート可能なドライブと読み取り開始セクターを示すと思われる、文書化されていない追加のフィールドがあります。これはIBMの公式ドキュメントには記載されていませんが、これらのバイトに正しい値がないとPC/XTシステムは起動しません。

DOS 3.0 BPB

FAT12およびFAT16用の標準DOS 3.0 BPBフォーマット(19バイト)。MS-DOS 2.11の一部のバージョンで既にサポートされている。[2]

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0013バイトDOS 2.0 BPB
0x0180x0Dワードトラックあたりの物理セクター数
0x01A0x0Fワードヘッド数
0x01C0x11ワード隠しセクター(DOS 3.31 BPBとは互換性がありません)

DOS 3.2 BPB

FAT12およびFAT16用の標準 DOS 3.2 BPB のフォーマット(21 バイト):

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0019バイトDOS 3.0 BPB
0x01E0x13ワード合計セクター数(DOS 3.31 BPBとは互換性がありません)

DOS 3.31 BPB

FAT12FAT16FAT16B(25バイト)用の標準DOS 3.31 BPBのフォーマット:

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0013バイトDOS 2.0 BPB
0x0180x0Dワードトラックあたりの物理セクター数(DOS 3.0 BPB と同じ)
0x01A0x0Fワードヘッドの数(DOS 3.0 BPBと同じ)
0x01C0x11DWORD隠しセクター(DOS 3.0 BPBとは互換性がありません)
0x0200x15DWORD論理セクター合計が大きい

DOS 3.4 EBPB

PC DOS 3.4およびOS/2 1.0-1.1拡張BPB (FAT12FAT16FAT16B用)のフォーマット(32バイト):

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0025バイトDOS 3.31 BPB
0x0240x19バイト物理ドライブ番号
0x0250x1Aバイトフラグなど
0x0260x1Bバイト拡張ブート署名(0x28別名「4.0」)(DOS 4.0 EBPBおよびNTFS EBPBに類似)
0x0270x1CDWORDボリュームシリアル番号

FAT12 / FAT16 / HPFS

DOS 4.0 EBPB

FAT12FAT16FAT16BHPFS用のDOS 4.0およびOS/2 1.2拡張BPBフォーマット(51バイト):

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0025バイトDOS 3.31 BPB
0x0240x19バイト物理ドライブ番号(DOS 3.4 EBPB と同一)
0x0250x1Aバイトフラグ等(DOS 3.4 EBPBと同一)
0x0260x1Bバイト拡張ブート署名(0x29別名「4.1」)(DOS 3.4 EBPB および NTFS EBPB に類似)
0x0270x1CDWORDボリュームシリアル番号(DOS 3.4 EBPB と同一)
0x02B0x2011バイトボリュームラベル
0x0360x2B8バイトファイルシステムの種類

FAT32

DOS 7.1 EBPB

FAT32用のDOS 7.1拡張BIOSパラメータブロック(60バイト)の短縮フォーマット

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0025バイトDOS 3.31 BPB
0x0240x19DWORDFATあたりの論理セクター数
0x0280x1Dワードミラーリングフラグなど
0x02A0x1Fワードバージョン
0x02C0x21DWORDルートディレクトリクラスタ
0x0300x25ワードファイルシステム情報セクターの場所
0x0320x27ワードバックアップセクターの場所
0x0340x2912バイト予約済み(ブートファイル名)
0x0400x35バイト物理ドライブ番号
0x0410x36バイトフラグなど
0x0420x37バイト拡張ブート署名(0x28
0x0430x38DWORDボリュームシリアル番号

FAT32のDOS 7.1拡張BIOSパラメータブロック(79バイト)の完全なフォーマット

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0025バイトDOS 3.31 BPB
0x0240x19DWORDFATあたりの論理セクター数
0x0280x1Dワードミラーリングフラグなど
0x02A0x1Fワードバージョン
0x02C0x21DWORDルートディレクトリクラスタ
0x0300x25ワードファイルシステム情報セクターの場所
0x0320x27ワードバックアップセクターの場所
0x0340x2912バイト予約済み(ブートファイル名)
0x0400x35バイト物理ドライブ番号
0x0410x36バイトフラグなど
0x0420x37バイト拡張ブート署名(0x29
0x0430x38DWORDボリュームシリアル番号
0x0470x3C11バイトボリュームラベル
0x0520x478バイトファイルシステムの種類

NTFS

NTFSの拡張BPBフォーマット(73バイト):

セクターオフセットBPBオフセットフィールド長説明
0x00B0x0025バイトDOS 3.31 BPB
0x0240x19バイト物理ドライブ番号(DOS 3.4 EBPB と同一)
0x0250x1Aバイトフラグ等(DOS 3.4 EBPBと同一)
0x0260x1Bバイト拡張ブート署名(0x80別名「8.0」)(DOS 3.4 EBPB および DOS 4.0 EBPB に類似)
0x0270x1Cバイト予約済み
0x0280x1DQWORDボリューム内のセクター
0x0300x25QWORDMFTの最初のクラスタ番号
0x0380x2DQWORDMFTミラーの最初のクラスタ番号
0x0400x35DWORDMFTレコードサイズ
0x0440x39DWORDインデックスブロックサイズ
0x0480x3DQWORDボリュームシリアル番号
0x0500x45DWORDチェックサム

exFAT BPB

exFATは、典型的な意味でのBPBは使用しません。しかし、セクター0のボリュームブートレコードはBPBに似た構造になっています。[3]

セクターオフセットフィールド長(バイト)説明
0x0003ジャンプブート。0xEB、0x76、0x90のいずれかである必要があります。
0x0038ファイルシステム名。「EXFAT」にする必要があります。
0x00B53空白(従来のBPB領域)。すべてゼロでなければなりません。

参照

参考文献

  1. ^ Microsoft . Microsoft Windows 2000 Server 操作ガイド. Microsoft Press
  2. ^ Paterson, Tim ; Microsoft (2013-12-19) [1983-05-17]. "Microsoft DOS V1.1 and V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". Computer History Museum , Microsoft . 2017年9月9日時点のオリジナルよりアーカイブ。 2014年3月25日閲覧(注: 発行者はこれが MS-DOS 1.1 と 2.0 であると主張していますが、実際はSCP MS-DOS 1.25と、 Altos MS-DOS 2.11TeleVideo PC DOS 2.11の混合です。)
  3. ^ 「exFATファイルシステム」。elm -chan.org

さらに詳しい情報

  • ジョナサン・ポラード著「BIOSパラメータブロックのすべて」。よくある質問集。2017年9月9日にオリジナルからアーカイブ2016年4月18日閲覧— バージョン 2.0 からバージョン 7.0 までの BPB の説明
  • Christopher, Ken W.; Feigenbaum, Barry A.; Saliga, Shon O. (1990). 「9. DOS ディスク使用法」. DOS を用いたアプリケーション開発. Wiley . ISBN 0-471-52231-7.「BIOSパラメータブロックの処理」セクションでは、MS-DOSバージョン2.0 BPBからPC DOSバージョン4.0 BPBまでのBIOSパラメータブロックの進化について説明し、各フィールドにそれを導入したDOSバージョンのラベルを付けています
  • タウンゼント、カール (1989). 「4. ディスクの構成と管理」.プログラマのためのMS-DOS上級テクニック.ハワード・M・サムズ. ISBN 0-672-22667-7.— 図4.3にはバージョン4.0のBPBの図が含まれており、BPBのレイアウトは「マイクロソフトによって定義されたものではなく、ベンダーによって異なる可能性がある」と記載されています。本書が執筆された当時、これは事実でした。マイクロソフトはOS/2開発者ツールキットで初めてBPBの構造を公開しました
  • Verstak, Alex (1998-03-10). 「FATブートセクター」. 2016年7月30日時点のオリジナルよりアーカイブ。— Verstak氏がBIOSパラメータブロックをリバースエンジニアリングしました。この論文にはいくつかの誤りがあります。その一つが、「FAT32におけるEBPBの存在はMicrosoftによって文書化されていない」という記述です。参照:
    • Microsoft . 「第10章 ディスクとファイルシステム」. Microsoft Windows 98 リソースキット. 2017年9月9日時点のオリジナルよりアーカイブ。 2017年9月9日閲覧— Microsoft は、DOS-Windows 98 用のバージョン 4.0 BPB と新しい「FAT32 BIOS パラメータ ブロック (BPB)」(バージョン 7.0 BPB) について文書化しています。これは、「標準の BPB よりも大きく」、「標準の BPB と同一の構造」を持ちますが、「いくつかの追加フィールドも含まれています」。
    • Microsoft . 「第32章 ディスクの概念とトラブルシューティング」. Microsoft Windows 2000 Professional リソースキット. 2006年8月10日時点のオリジナルよりアーカイブ。 2006年6月1日閲覧— Microsoftは、FAT16ボリュームとFAT32ボリュームの両方における拡張BPBについて文書化しています。また、NTFSボリュームにおけるBPBについても文書化しています。
  • Microsoft . 「NTFSの仕組み」。Microsoft Windows Server 2003 NTFSテクニカルリファレンス。2016年7月30日時点のオリジナルからのアーカイブ。— 表「NTFSボリューム上のBPBおよび拡張BPBフィールド」は、NTFSボリューム上のBPBについて説明しています。いくつかのフィールドの説明は、Windows 2000リソースキットに記載されている内容と矛盾しています。
  • de Boyne Pollard, Jonathan. 「ボリュームブートブロックのOEM名フィールドの意味と使用法」。よくある質問集。2017年9月9日時点のオリジナル記事よりアーカイブ。 2016年6月4日閲覧— BPBに影響を与える問題
  • Paul, Matthias R. (2004年8月25日). 「NOVOLTRK.REG」. www.drdos.org . 2016年3月4日時点のオリジナルよりアーカイブ。 2011年12月17日閲覧[1]
  • Paul, Matthias R. (2002年2月20日). 「DOS 6.22が必要(OEMではない)」.ニュースグループ: alt.msdos.programmer. 2017年9月9日時点のオリジナルよりアーカイブ2006年10月14日閲覧— OEMラベルの誤用とMicrosoftのボリュームトラッカーについて
  • Paul, Matthias R. (2002-08-12). 「ファイルシステムID - alt.os.developmentブートセクタ記述子標準化委員会」.ニュースグループ: alt.os.development. オリジナルから2022年5月29日アーカイブ。 2019年7月29日閲覧
  • Bass, Wally (1994-02-14). 「クラスタサイズ」.ニュースグループ: comp.os.msdos.programmer. 2017年9月9日時点のオリジナルよりアーカイブ。 2006年10月14日閲覧
  • Elliott, John C. (2006-04-17) [2004-06-18]. 「OEM IDについて」. Seasip.info . 1.3. 2019年4月8日時点のオリジナルよりアーカイブ。 2019年7月29日閲覧
  • Dye, Charles E. (1999-03-20). 「FDISKの問題」. delorie.com . 2019年7月29日時点のオリジナルよりアーカイブ。 2019年7月29日閲覧
  • 匿名 (2004年6月15日). 「MicrosoftとCaldera DR-DOS、そしてOEM IDについて、この記事がお役に立てれば幸いです」. Groklaw . 2011年2月20日時点のオリジナルよりアーカイブ。 2019年7月29日閲覧
  • Kilmer, Jen (2013-05-21). 「Evil :) DOS6 FAT」.ニュースグループ: comp.os.os2.misc. オリジナルから2022年5月29日時点のアーカイブ。 2019年7月29日閲覧
「https://en.wikipedia.org/w/index.php?title=BIOS_parameter_block&oldid=1309117168」から取得