「マスターブートレコード」の版間の差分
(→パーティション識別子) |
(相違点なし)
|
2014年6月28日 (土) 13:09時点における最新版
アドレス | 内容 | サイズ (バイト) | ||
---|---|---|---|---|
Hex | Dec | |||
0000
|
0 | ブートストラップローダ | 446 | |
01BE
|
446 | 第1パーティション | パーティションテーブル (各16バイト) |
64 |
01CE
|
462 | 第2パーティション | ||
01DE
|
478 | 第3パーティション | ||
01EE
|
494 | 第4パーティション | ||
01FE
|
510 | 55h | ブートシグニチャ; 0xAA55 |
2 |
01FF
|
511 | AAh | ||
MBRサイズ | 512 |
マスターブートレコード(Master Boot Record、略称MBR)とは、ブートセクタの一種で、複数のパーティションに分けられたディスクにおける、先頭セクタ(パーティション外である)にあるブートセクタのこと。PC/AT互換機の場合、ブートストラップローダの他にパーティションテーブルも含まれる。
PC/AT互換機では、セクタ長が512バイトで、BIOSによって先頭1セクタのみのロードしか保証されないため、長さ512バイトである。0(先頭)~445(446バイト)にブートストラップローダ、446~509(64バイト)にパーティションテーブル、510~511(2バイト)にブートシグニチャがある。
目次
ブートストラップローダ
ブートストラップローダ(マスターブートローダ、マスターブートコード、イニシャルプログラムローダ(IPL)などとも)領域は、IBM-PCでは、昔は、自身をメモリ上でコピーした上で、ブート可能フラグが立っているパーティションのブートセクタをロードし、そのブートストラップローダを実行する、という単純な起動プログラムが入っており、IBMとマイクロソフト製のこのコードをどのOSも共通に利用していた。
しかし、この方式では、違うパーティションに切り替えて起動する際には、OSシャットダウンする前に、かならずそれぞれのOS内でユーティリティプログラムを実行してブートするパーティションを設定しなければならず、不便であった。このため、起動時にメニュー方式で選択できる各種のプログラムがよく使われるようになった。PC-9800シリーズではBIOS内に起動するパーティションを選択できるプログラムが入っていた。
ブートストラップローダの内容
(ブートシーケンスの一部)
- パーティションテーブルを4つのテーブルエントリーの先頭から検査し、起動フラグが立っている基本領域がないか探す。
- 起動フラグの立っている基本領域が見つかったらその領域の先頭位置をパーティションテーブルから取得する。
- BIOSにその位置を示してメモリにロードしてもらい、制御を受け渡す。
パーティションテーブル
パーティションに関する情報を記録している。4つのエントリがあり1つあたり16バイトである。各エントリにはそのパーティションの位置情報、種類、起動フラグが記録されている。
オフセット | 内容 | サイズ | ||
---|---|---|---|---|
Hex | Dec | |||
0x00
|
0 | フラグ (0x80 = ブート可, 0x00 = ブート不可)
|
1 | |
0x01
|
1 | パーティションの最初のセクタ。CHS 方式での値。 | ヘッド | 3 |
シリンダの上位2ビットとセクタ | ||||
シリンダの下位8ビット | ||||
0x04
|
4 | パーティションの種類(パーティション識別子)。 | 1 | |
0x05
|
5 | パーティションの最後のセクタ。CHS 方式での値。 | ヘッド | 3 |
シリンダの上位2ビットとセクタ | ||||
シリンダの下位8ビット | ||||
0x08
|
8 | パーティションの最初のセクタ。LBA 方式での値。 | 4 | |
0x0C
|
12 | パーティションの全セクタ数 | 4 |
パーティション識別子
格納値(16進値) | ファイルシステム名 |
---|---|
0x00 | 空のパーティション |
0x01 / 0x11 | FAT12(後者は隠し、以下0x01 - 0x0Fに対する0x11 - 0x1Fは同様) |
0x04 / 0x14 | FAT16 (32MB以下) |
0x05 / 0x15 | 拡張DOS領域 |
0x06 / 0x16 | FAT16 (32MBより大きい) |
0x07 / 0x17 | HPFS / NTFS / exFAT |
0x0B / 0x1B | FAT32 |
0x0C / 0x1C | FAT32(LBA対応) |
0x0E / 0x1E | FAT16(LBA対応) |
0x0F / 0x1F | 拡張DOS領域(LBA対応) |
0x13 | 超漢字のファイルシステム |
0x39 | Plan9のファイルシステム |
0x71 | EOTAのSFSファイルシステム[出典 1] |
0x81 | Minixのファイルシステム / ext1 |
0x82 | Linux スワップパーティション / Solaris 10以前のファイルシステム |
0x83 | ext2等のLinuxファイルシステム |
0x85 | Linux拡張領域 |
0xA0 | サスペンド領域 |
0xA5 | FreeBSD Unix File System (FFS / UFS1 / UFS2) |
0xA6 | OpenBSD UFS |
0xA9 | NetBSD UFS |
0xBE | Solarisにおけるブート用パーティション(ミニルート) |
0xBF | Solarisのファイルシステム[出典 2] |
0xC1 | DR-DOSのファイルシステム |
0xC4 | DR-DOSのファイルシステム |
0xC6 | DR-DOSのファイルシステム(32Mより大きい) |
0xEB | BeOSのファイルシステム |
0xEE | GPT |
ブートシグニチャ
ここには0xAA55という値がマジックナンバーとして必ず入っている。これはこのMBRが有効であるという署名のようなもので、これがない場合はこのMBRは無効なものとして扱われる。
ブートレコードの復元
- Windows NT、Windows 2000、Windows XPの場合
- 回復コンソールでfixmbrと実行すれば良い。または、WindowsのCD-ROMで起動しRキーで修復すればよい。
- MS-DOS、Windows 95、Windows 98/98SE、Windows Meの場合
- FDDから起動し、fdisk /mbr と実行すれば良い。
出典
関連項目
テンプレート:Asbox
引用エラー: 「出典」という名前のグループの <ref>
タグがありますが、対応する <references group="出典"/>
タグが見つからない、または閉じる </ref>
タグがありません