PBR[Partition Boot Record]は、Partition内にあるOS本体をロードおよび実行させるための、512byteで構成された小さなデータです。PBRは各パーティションの先頭セクターに存在し、MBRと同じように若干のプログラムとパーティションに関する情報から構成されています。PBRの構成はOSに依存するので、NetBSDのようにOEM Name,BPB,EBPBがないものもありますが、OpenBSDのPBRはWindowsのPBRと同じ構成を取っているようです。

PBR[Partition Boot Record]は、Partition内にあるOS本体をロードおよび実行させるための、512byteで構成された小さなデータです。PBRは各パーティションの先頭セクターに存在し、MBRと同じように若干のプログラムとパーティションに関する情報から構成されています。PBRの構成はOSに依存するので、NetBSDのようにOEM Name,BPB,EBPBがないものもありますが、OpenBSDのPBRはWindowsのPBRと同じ構成を取っているようです。
Bootstrap codeに移るための、ジャンプ命令が書かれています。
このパーティションにインストールされているOSのOEM NAMEが入るようです。
BPB[BIOS Parameter Block]とはWindowsが標準で利用しているFATファイルシステムで使われるディスク管理用データのエリアであり、このエリアには、1クラスタあたりのセクタ数など、ディスクの物理的な属性が記述されています。
offset | size | BPB詳細 |
---|---|---|
0x000B | 2 Byte | Bytes per Sector |
0x000D | 1 Byte | Sectors Per Cluster |
0x000E | 2 Byte | Reserved Sectors |
0x0010 | 1 Byte | file allocation table数 |
0x0011 | 2 Byte | Root Entrie |
0x0013 | 2 Byte | Small Sector |
0x0015 | 1 Byte | Media Type |
0x0016 | 2 Byte | Sectors per file allocation table |
0x0018 | 2 Byte | Sectors per Track |
0x001A | 2 Byte | Number of Heads |
またBPBの後ろにはEBPB[Extended BIOS Parameter Block]があり、次の情報から構成されています。
offset | size | EBPB詳細 |
---|---|---|
0x001C | 4 Byte | Hidden Sectors |
0x0020 | 4 Byte | Large Sectors |
0x0024 | 1 Byte | Physical Disk Number |
0x0025 | 1 Byte | Current Head |
0x0026 | 1 Byte | Signature |
0x0027 | 4 Byte | Volume Serial Number |
0x002B | 10 Byte | Volume Label |
0x0035 | 9 Byte | System ID |
OSをディスクからロードして実行させるプログラムです。
MBRのBOOT Signatureとほぼ同じ意味を持ちます。
PBRはOpenBSDのインストール時に(もちろん、運用後にも)、installbootコマンドによって変更・書込みを行う事ができます。
# dd if=/dev/wd0a of=openbsd.pbr bs=512 count=1
下記の表は、私が使用している環境のPBRをダンプしたものです。
_OFFSET_ 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000: EB 3C 90 4F 70 65 6E 42 53 44 00 00 02 02 00 00 .<.OpenBSD...... 00000010: 00 00 00 00 00 F8 00 00 00 00 00 00 10 00 00 00 ................ 00000020: 00 00 00 00 00 00 29 00 00 00 00 55 4E 49 58 20 ......)....UNIX 00000030: 4C 41 42 45 4C 55 46 53 20 34 2E 34 00 00 EA 48 LABELUFS 4.4...H 00000040: 00 C0 07 B0 58 E9 37 01 31 C0 8E D0 BC FC 7B 0E ....X.7.1.....{. 00000050: 1F BE E4 01 88 D6 B4 02 CD 16 0C 00 A8 03 74 03 ..............t. 00000060: 4E 30 F6 E8 56 01 F6 C6 80 74 1E 52 BB AA 55 B4 N0..V....t.R..U. 00000070: 41 CD 13 5A 72 13 81 FB 55 AA 75 0D F6 C1 01 74 A..Zr...U.u....t 00000080: 08 C7 06 D1 01 84 01 EB 1A 52 B4 08 CD 13 72 B3 .........R....r. 00000090: 88 36 55 01 80 E1 3F 74 AA 88 0E 4C 01 B0 3B E8 .6U...?t...L..;. 000000A0: 25 01 5A 66 B8 88 00 00 00 BB E0 07 FF 16 D1 01 %.Zf............ 000000B0: 66 BE 28 3D 00 00 BF 03 00 89 F9 83 F9 0C 72 03 f.(=..........r. 000000C0: B9 0C 00 BB 00 40 B0 2E E8 FC 00 FC 66 AD 66 60 .....@......f.f` 000000D0: FF 16 D1 01 66 61 81 C3 00 04 4F E2 E9 09 FF 74 ....fa....O....t 000000E0: 22 B8 49 00 08 E4 0F 85 95 00 FE 06 E3 00 66 AD ".I...........f. 000000F0: 53 BB E0 07 FF 16 D1 01 5B 66 BE 00 02 00 00 89 S.......[f...... 00000100: F9 EB C3 BE F3 01 E8 B3 00 B8 00 40 8E C0 26 81 ...........@..&. 00000110: 3E 02 00 4C 46 74 0F B0 4D BE EE 01 A2 F2 01 E8 >..LFt..M....... 00000120: 9A 00 FB F4 EB FC 51 88 D1 51 66 68 0D D0 01 C0 ......Q..Qfh.... 00000130: EA 00 00 12 40 E8 5D 00 66 A1 DB 01 8B 0E D5 01 ....@.].f....... 00000140: 66 60 8E C3 52 66 31 D2 66 89 D1 B1 90 66 F7 F1 f`..Rf1.f....f.. 00000150: 52 66 31 D2 B1 90 41 66 F7 F1 88 C5 C0 E4 06 88 Rf1...Af........ 00000160: E1 5B FE C3 08 D9 58 88 D6 88 C2 31 DB B8 01 02 .[....X....1.... 00000170: E8 1D 00 66 61 66 40 83 C3 20 E2 C4 C3 B0 52 BE ...faf@.. ....R. 00000180: EC 01 EB 98 E8 0E 00 89 1E D9 01 BE D3 01 B4 42 ...............B 00000190: CD 13 72 E9 C3 B9 20 02 66 50 28 E9 66 D3 E8 66 ..r... .fP(.f..f 000001A0: A3 DF 01 66 58 88 E9 66 D3 E0 66 05 3F 00 00 00 ...fX..f..f.?... 000001B0: 66 A3 DB 01 73 05 66 FF 06 DF 01 C3 FC AC 08 C0 f...s.f......... 000001C0: 74 0E E8 02 00 EB F6 53 B4 0E 31 DB 43 CD 10 5B t......S..1.C..[ 000001D0: C3 35 01 10 00 20 00 00 00 00 00 00 00 00 00 00 .5... .......... 000001E0: 00 00 00 21 4C 6F 61 64 69 6E 67 00 0D 0A 45 52 ...!Loading...ER 000001F0: 52 20 3F 0D 0A 00 00 00 00 00 00 00 00 00 55 AA R ?...........U. 00h-02h JMP Instraction 03h-0Ah OEM ID =OpenBSD0Bh-1BH BIOS Parameters Block 1CH-3Dh Extended BIOS Parameters Block 3Eh-1FDh BootStrap code 1FEh-1FFh Signature |
BPB,EBPBの値などをセットしているのは、Windows NT側のディスク管理ツールからOpenBSDのパーティションを認識させる為だと思われる。よって、最小限度の値しかセットされていない。
offset | 詳細 | 値 |
---|---|---|
0x00 | Jump instruction | jmp 3e |
0x03 | OEM Name | "OpenBSD" |
BIOS Parameter Block(BPB) | ||
0x0b | Bytes per Sector | 512 |
0x0d | Sectors Per Cluster | 2 |
0x0e | Reserved Sectors | 0 |
0x10 | file allocation table数 | 0 |
0x11 | Root Entrie | 0 |
0x13 | Small Sector | 0 |
0x15 | Media Type | 0xF8 |
0x16 | Sectors per file allocation table | 0 |
0x18 | Sectors per Track | 0 |
0x1a | Number of Heads | 0 |
Extended BIOS Parameter Block(EBPB) | ||
0x1c | Hidden Sectors | 16 |
0x20 | Large Sectors | 0 |
0x24 | Physical Disk Number | 0 |
0x25 | Current Head | 0 |
0x26 | Signature | 0x29 |
0x27 | Volume Serial Number | 00000000 |
0x2B | Volume Label | "UNIX LABEL" |
0x36 | System ID | "UFS 4.4" |
0x3e | Bootstrap code | ---- |
0x1fe | signature | 0xAA55 |