各パーティション (領域) の先頭セクタをブートセクタと呼び、主に windows で使われる。
windows の場合、ブートセクタはシステムファイルを読み込むブートコード (IPL:Initial Program Loader) や、ディスクに関する情報のディスクパラメータ等で構成される。 ディスクパラメータは BPB (BIOS Parameter Block) とも呼ばれる。
LINUX にはブートセクタという概念はなく、副次的なブートローダ (GRUB or LILO) のインストール場所として使われる。
LINUX インストール時にブートローダのインストール場所として MBR を選択すると、ブートセクタには何も記録されない。
ブートセクタは概ね次のように構成される。
ただし、ディスクパラメータやブートコードのサイズが OS の種類やパージョンによって異なるため、ブートコードの開始位置は一律とはならない。
位置 (offset) | 適用 |
0x0000 | IPL へのジャンプ命令 |
0x0003 | ディスクパラメータ BPB (拡張 BPB を含む) |
0x0054(※1) | ブートコード IPL
|
0x01FE | boot signature |
- IPL へのジャンプ命令 : 3 バイト構成。
ブートコード (IPL) の offset が 0x0054 の場合、EB 52 90 と記述される。
- ディスクパラメータ : 次節参照。
- ブートコード (IPL) : ntldr や bootmgr をロードするプログラム。
- boot signature : ブートセクタが正当なものであることの署名 (0x55AA) 。
BPB (BIOS Parameter Block) とも呼ばれる。 ディスクパラメータはファイルシステムごとに異なる構成となっている。
位置 (offset) | 適用 | サイズ(バイト) |
0x03 | OEM 名 | 8 |
0x0B | セクタ サイズ (512) | 2 |
0x0D | セクタ数 / クラスタ | 1 |
0x0E | 予約セクタ数 | 2 |
0x10 | FAT 数 | 1 |
0x11 | リザーブ | 4 |
0x15 | メディア Descriptor | 1 |
0x16 | セクタ数 / FAt | 2 |
0x18 | セクタ数 / トラック | 2 |
0x1A | ヘッド数 | 2 |
0x1C | 隠しセクタ | 4 |
0x20 | 全 Big セクタ数 | 4 |
0x24 | Big セクタ数 / FAT | 4 |
0x28 | 拡張フラグ | 2 |
0x2A | ファイルシステムバージョン | 2 |
0x2C | ルートの最初のクラスタ | 4 |
0x30 | ファイルシステム情報セクタ位置 | 2 |
0x32 | バックアップブート セクタ位置 (6) | 2 |
0x34 | リザーブ | 12 |
0x40 | ドライブ ID | 1 |
0x41 | NT のためのリザーブ | 1 |
0x42 | 拡張ブートサイン | 1 |
0x43 | シリアル番号 | 4 |
0x47 | ボリューム名 | 11 |
0x52 | ファイルシステムタイプ (FAT32) | 8 |
位置 (offset) | 適用 | サイズ(バイト) |
0x03 | OEM 名 (NTFS) | 8 |
0x0B | セクタ サイズ (512) | 2 |
0x0D | セクタ数 / クラスタ | 1 |
0x0E | 予約セクタ数 | 2 |
0x10 | FAT 数 | 1 |
0x11 | ルートディレクトリ エントリー数 | 2 |
0x13 | 全セクタ数 | 2 |
0x15 | メディア Descriptor | 1 |
0x16 | セクタ数 / FAT | 2 |
0x18 | セクタ数 / トラック | 2 |
0x1A | ヘッド数 | 2 |
0x1C | 隠しセクタ | 4 |
0x20 | 全 Big セクタ数 | 4 |
0x24 | 未使用 | 4 |
0x28 | 全 NTFS セクタ数 | 8 |
0x30 | MFT (Master File Table) 開始クラスタ | 8 |
0x38 | MFT ミラー 開始クラスタ | 8 |
0x40 | クラスタ数 / FRS | 4 |
0x44 | クラスタ数 / Index ブロック | 4 |
0x48 | シリアル番号 | 4 |
0x4C | チェックサム | 4 |
コマンド / ツール | 作成可能なファイルシステム | 複数基本領域の作成 | 論理領域の作成 | フォーマット | 未知のパーティションタイプの削除 |
FAT16 | FAT32 | NTFS | ext2f |
fdisk (DOS, windows) | ○ | ○ | × | × | × | ○ | × | × |
ディスクの管理 (win2000 / XP) | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ |
fdisk (Linux) | ○ | ○ | ○ | ○ | ○ | ○ | × | ○ |
PC/AT 互換機のハードディスクには、次のような決まりがある。
パーティションはシリンダ境界で作成する。
"パーティションはシリンダ単位で作成する" という決まりで "シリンダ境界規定" と呼ばれ、
各パーティションには、連続した複数のシリンダがシリンダ単位で割り当てられる。
大容量のハードディスクではシリンダの値が実際のシリンダを表していない上、8GB を越えた領域では C/H/S の値そのものが不正な値である (U.1.CHS 方式の囲み記事参照)。
しかし、各ベンダーは IBM の仕様を尊重し、パーティションの開始位置をシリンダの先頭 (パーティション開始位置を、ヘッド "0"、セクタ "1") からとしているところが多い。
基本領域および拡張領域の先頭セクタは、それぞれ MBR, EPBR として割り付けられている。
これに続く最初のパーティションに対して "シリンダ境界規定" を適用すると、MBR, EPBR のあるシリンダは先頭の 1 セクタのみが使用されて、残りのセクタは大量のデッドスペースとなってしまう。
そこで、
最初のパーティションのみ 第 2 トラックから始める。
という "第 2 トラック規定" が決められている。 第 2 トラックとはそのシリンダの ヘッド "1"、セクタ "1" を指す。