TOPに戻る
▼Processor
プロセッサの初期化
┣ BISTとは?
┣ CS:IPレジスタの
┃ 用途と初期値
┣ BIOS〜OS起動
┣ マスターブート
┃ レコード1
┗ マスターブート
レコード2
Copyright(C) 2001-2002.ugpop. All rights reserved.
■ マスターブートレコード1 ■
前回はBIOSからOSが起動するまでの流れを説明しました。
プロセッサの初期化完了後はCS:IPはBIOSの位置を示しており、
BIOS→ブートローダ→OSローダ→OS起動と処理が流れていく事
の説明を行ないました。
今回から「コンピュータの起動」と題名を変更します。
もう、プロセッサの初期化の説明は終わったので・・・。^^;)
という事でコンピュータの起動に関わる「マスターブートレコ
ード」について解説を行っていきます。
まずパソコンの電源投入直後から、フロッピーディスクやCD-
ROMからOSが起動するまでの図をもう1度見てみましょう。
┌─────────────┐
│ パソコンの電源投入 │
└──────┬──────┘
│
┌──────┴──────┐
│プロセッサの自己診断(BIST)│
└──────┬──────┘
│ CS:FFFF IP:FFF0
┌──────┴──────┐
│ BIOS起動 │ フロッピー等
└──────┬──────┘ ┌────┐
│ブートセクター読出 │ │
│←─────────┤ │
│ └────┘
┌──────┴──────┐
│ブートセクターの内容(ブー │
│トローダ)をメモリに格納 │
└──────┬──────┘
│
┌──────┴──────┐
│ ブートローダ起動 │ フロッピー等
└──────┬──────┘ ┌────┐
│OSローダ読出 │ │
│←─────────┤ │
│ └────┘
┌──────┴──────┐
│ OSローダをメモリに格納 │
└──────┬──────┘
│
┌──────┴──────┐
│ OSローダ起動 │ フロッピー等
└──────┬──────┘ ┌────┐
│ OS読出 │ │
│←─────────┤ │
│ └────┘
┌──────┴──────┐
│ OSをメモリに格納 │
└──────┬──────┘
│
┌──────┴──────┐
│ OS起動 │
└─────────────┘
上の図は、フロッピーディスクやCD-ROMから起動する場合の図
です。
ハードディスクから起動する場合、上の図とはほんの少しです
が異なる部分があります。
上の図からその異なる部分を抜き出したものを以下に示します。
┌──────┴──────┐
│ BIOS起動 │ フロッピー等
└──────┬──────┘ ┌────┐
│ブートセクター読出 │ │
│←─────────┤ │
│ └────┘
┌──────┴──────┐
│ブートセクターの内容(ブー │
│トローダ)をメモリに格納 │
└──────┬──────┘
│
┌──────┴──────┐
│ ブートローダ起動 │
└──────┬──────┘
フロッピーディスクやCD-ROMから起動する場合とハードディス
クから起動する場合に異なる部分はこの部分だけです。
では、ハードディスクからOSを起動する場合の説明を行ないま
す。
ハードディスクというのはフロッピーディスクやCD-ROM等と異
なり、1つの物理的な物に対して複数の論理ドライブを設定す
る事ができます。
以下に、1つのハードディスクに1つの論理ドライブがある場
合の図を示します。
ハードディスク
Cドライブの先頭→┌───────┐
│ブートセクター│
├───────┤
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└───────┘
ハードディスクの場合も、「ドライブの先頭」にブートセクタ
ーは存在します。これはフロッピーディスクやCD-ROMと変わり
はありません。
ここで例えば、ハードディスクのドライブ数を増やしたいとし
ます。
みなさんの中にもやってみた方がいるかと思いますが、ハード
ディスクの場合、フロッピーやCD-ROM等と違い、論理的にドラ
イブ数を増やす事が出来ます。
コマンドラインでFDISKと入力すると論理的なドライブを増や
す為の設定が行えるのです。
(ただし気軽にこのコマンドを使用しないでください。ハード
ディスクの中身のデータが全て消えてしまいます。)
「論理的にドライブ数を増やす」とは、物理的に1つのハード
ディスク上にCドライブとDドライブを2つ存在させたり、も
っと多くのドライブを存在させたりする事をいいます。
物理的に1つのハードディスクを論理的に複数に分ける事を
「パーティションをきる」といいます。
さて、上の例でCドライブとして使われていたハードディスク
をCドライブとDドライブの2つの論理ドライブとして使える
ように変更したとします。
以下にその図を示します。
ハードディスク
Cドライブの先頭→┌───────┐
│ブートセクター│
├───────┤
│ │
│ │
│ │
│ │
│ │
Dドライブの先頭→├───────┤
│ブートセクター│
├───────┤
│ │
│ │
│ │
│ │
└───────┘
Cドライブとして使われていたハードディスクが論理的に2つ
のドライブに分けられています。
ブートセクターは「各ドライブ」の先頭に位置しているものな
ので、Dドライブの先頭にもブートセクターが存在しています。
ところが、BIOSというプログラムは「論理的」に設定されたド
ライブというものを認識する事が出来ません。
あくまで、「物理的」な物しか認識しないのです。
その為、上の例でいうとハードディスクの物理的に先頭にある
ブートセクタ、つまりCドライブのブートセクタしか認識しま
せん。
DドライブのブートセクタはBIOSからは無視されてしまいます。
Dドライブのブートセクタに本当に動作させたいブートローダ
のプログラムが格納されていた場合、これでは一生OSが起動し
ない事になってしまいます。
そうならないように、ハードディスク上に存在する「論理的」
なドライブを認識する為の専用のプログラムが必要となります。
このプログラムはBIOSから起動してもらう為に、ハードディス
ク上の「物理的」に先頭の場所に置かなければなりません。
ハードディスク上の「物理的」に先頭の場所に置く為に、元々
Cドライブの先頭にあったブートセクターには少し場所をずれ
てもらいます。
以下にそのイメージを示します。
ハードディスク
BIOSはここにある ┌───────┐
プログラムを起動→│ドライブを認識│
│するプログラム│
Cドライブの先頭→├───────┤
│ブートセクター│
├───────┤
│ │
│ │
│ │
│ │
Dドライブの先頭→├───────┤
│ブートセクター│
├───────┤
│ │
│ │
│ │
│ │
└───────┘
この論理的なドライブを認識する為の専用のプログラムが入っ
ている場所の事を「マスターブートレコード」(MBR:Master Bo
ot Record)と呼びます。
マスターブートレコードには、論理的なドライブを認識するプ
ログラムの他に、論理ドライブの開始位置、終了位置等の管理
情報が格納されています。
マスターブートレコードは1つのハードディスクに1つずつ必
ず存在するものです。たとえ論理的なドライブが1つしか無か
ったとしても、です。
さて、今回はマスターブートレコードについて解説を行ないま
した。
次回はマスターブートレコードについてもう少し詳細に解説を
行い、これを利用してどのようにコンピュータが起動するか解
説を行ないます。
←前へ戻る ▲このページの上へ 続きを読む→