★阿修羅♪ > IT9 > 243.html
 ★阿修羅♪
【Windows.FAQ】 基礎講座:PC の起動する仕組みは?マスターブートレコード (MBR) やブートセクター
http://www.asyura2.com/0601/it09/msg/243.html
投稿者 迷える牧羊犬 日時 2006 年 8 月 25 日 10:31:30: FqUwaLW8ye0Cw
 

『Windows.FAQ--ウインドウズの処方箋』
http://homepage2.nifty.com/winfaq/howtoboot.html からの引用です。
----------------------------------------------------------------------------------
■ PC が起動する仕組み

HDD からオペレーティングシステムを起動する場合、次のようなステップが実行されています。

1. POST (Power-on Self Test) が実行されます。
2. BIOS がブートデバイスを検索します。
3. 最初のブートデバイスの MBR をメモリー上にロードし、制御を渡します。
(ブートデバイスがフロッピーディスクの場合はブートセクターに制御を渡します。)
4. MBR のブートストラップコードは、パーティションテーブルを検索し、ブート識別子がアクティブ (0x80) なパーティションのブートセクターをメモリー上にロードして制御を渡します。
5. ブートセクターに記録されたプログラムは、OS ローダーをメモリー上にロードし、制御を渡します。
(DOS/Windows の場合は IO.SYS が、Windows NT/2000 の場合は NTLDR がロードされます。)
6. OS の起動が開始されます。

単純化すると以下のようになります。

* BIOS -> MBR -> ブートセクター -> IO.SYS または NTLDR


■ マスターブートレコード (MBR) とは?

マスターブートレコード (MBR) とは、ハードディスクの最初のセクタ (512 バイト) です。このセクターには次のようなものが記録されています。
開始オフセット 内容
0x0000 ブートストラップコード
0x01B8 署名 (Windows NT/2000/XP のディスクマネージャやディスクの管理が使用)
0X01BA パーティションテーブル(x4)
パーティションテーブルは 446 バイト目から始まり、16 バイトづつの 4 レコードが記録されます。
各レコードには次の情報が記録されています。

* ブート識別子 (アクティブパーティションかどうかのフラグ)
* 開始位置 (Starting CHS)
* 終了位置 (Ending CHS)
* システム ID (パーティション ID。ファイルシステムの種類を記録)
* オフセット
* 総セクター数

パーティションテーブルは最大 4 レコードなので、PC は 1 つのハードディスクに作成できる最大パーティション数は 4 になります。
パーティションには、次の 2 つの種類があります。

* 基本パーティション
* 拡張パーティション

起動ドライブとして使うことができるのは基本パーティションだけです。また、5 個以上のドライブを作りたい場合は、1 つを拡張パーティションとして定義し、この中に論理ドライブを複数作成する必要があります。
拡張パーティションの中で論理ドライブを定義するために使われるのが、拡張ブートレコード (EBR) です。
EBR は MBR のパーティションレコード部分と同じ構成です。パーティションレコードの最初の 2 レコードだけが使用され、第一レコードは自分のドライブのブートセクターの位置を、第二レコードは次のドライブの EBR の位置を示しています。


■ マスターブートレコード (MBR) が壊れたら?

何らかの理由で MBR が破損して PC が起動しなくなった場合、次のような手順で MBR を再作成することができます。
ただし、ウィルスに感染して MBR が破壊されたり、乗っ取られた場合にこのような手順で MBR を書き換えると、ウィルスが保管したデータも消滅して被害が拡大することもあります。以下のプログラムは MBR の 446 バイトまでを上書きするので、パーティションテーブルは一切変更されません。

* Windows9x/Me を使っている場合
1. Windows9x/Me の起動ディスクで PC を起動します。
2. コマンドプロンプトから次のコマンドを実行します。
FDISK /MBR
* Windows 2000/XP を使っている場合
1. Windows の回復コンソールを起動します。
2. コマンドプロンプトから次のコマンドを実行します。
FIXMBR

注:Window NT/2000/XP を起動する場合でも、FDISK /MBR コマンドで MBR を復旧できます。

■ ブートセクターとは?

各ドライブの最初のセクターです。ここには OS に依存する実行プログラムが記録され、IO.SYS や NTLDR などのオペレーティングシステムローダーを起動します。
Windows9x が導入された PC に Windows NT/2000 を導入すると、既存のブートセクターが bootsect.dos というファイルにコピーされます。(当然の結果として、bootsect.dos ファイルのサイズは 512 バイトです。) NTLDR の表示する起動選択画面で Microsoft Windows を選択すると bootsect.dos がロードされて制御が渡され、これが IO.SYS (Windows9x の起動プログラム) を起動します。

ブートセクターには以下のものが記録されています。
開始オフセット 内容
0x00 JUMP 命令
0x03 OEM ID
0x0B BIOS パラメータブロック (BPB)
0x24 拡張 BIOS パラメータブロック (BPB)
0x3E(54) ブートストラップコード
0x1FE 終了識別子 (0x55AA)
--------------------------------------------------------------------------------

 次へ  前へ

  拍手はせず、拍手一覧を見る

▲このページのTOPへ HOME > IT9掲示板


  拍手はせず、拍手一覧を見る


★登録無しでコメント可能。今すぐ反映 通常 |動画・ツイッター等 |htmltag可(熟練者向)
タグCheck |タグに'だけを使っている場合のcheck |checkしない)(各説明

←ペンネーム新規登録ならチェック)
↓ペンネーム(2023/11/26から必須)

↓パスワード(ペンネームに必須)

(ペンネームとパスワードは初回使用で記録、次回以降にチェック。パスワードはメモすべし。)
↓画像認証
( 上画像文字を入力)
ルール確認&失敗対策
画像の URL (任意):
投稿コメント全ログ  コメント即時配信  スレ建て依頼  削除コメント確認方法
★阿修羅♪ http://www.asyura2.com/  since 1995
 題名には必ず「阿修羅さんへ」と記述してください。
掲示板,MLを含むこのサイトすべての
一切の引用、転載、リンクを許可いたします。確認メールは不要です。
引用元リンクを表示してください。