BIOSパラメータブロック

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

FAT12 / FAT16

DOS 2.0 BPB

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

セクターオフセット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用の標準 DOS 3.31 BPB のフォーマット(25 バイト):

セクターオフセット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

DOS 4.0 および OS/2 1.2 拡張 BPB のFAT12FAT16FAT16BHPFS用フォーマット(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言葉FS情報セクターの所在地
0x0320x27言葉バックアップセクターの場所
0x0340x2912バイト予約済み(ブートファイル名)
0x0400x35バイト物理ドライブ番号
0x0410x36バイト旗など
0x0420x37バイト拡張ブート署名(0x28
0x0430x38DWORDボリュームシリアル番号

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

セクターオフセットBPBオフセットフィールドの長さ説明
0x00B0x0025バイトDOS 3.31 BPB
0x0240x19DWORDFATあたりの論理セクター数
0x0280x1D言葉ミラーリングフラグなど
0x02A0x1F言葉バージョン
0x02C0x21DWORDルートディレクトリクラスタ
0x0300x25言葉FS情報セクターの所在地
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

さらに読む

  • de Boyne Pollard, Jonathan. 「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のレイアウトは「Microsoftによって定義されたものではなく、ベンダーによって異なる場合があります」と記載されています。本書の執筆当時、これは事実でした。MicrosoftはOS/2 Developers' Toolkitにおいて初めて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-02-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」から取得