分かりやす〜い
コンピュータ技術情報

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つしか無か
ったとしても、です。

さて、今回はマスターブートレコードについて解説を行ないま
した。
次回はマスターブートレコードについてもう少し詳細に解説を
行い、これを利用してどのようにコンピュータが起動するか解
説を行ないます。



←前へ戻る    ▲このページの上へ    続きを読む→