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

TOPに戻る
▼Processor
プロセッサの初期化
┣ BISTとは?
┣ CS:IPレジスタの
┃ 用途と初期値

┣ BIOS〜OS起動
┣ マスターブート
┃ レコード1

┗ マスターブート
  レコード2


Copyright(C) 2001-2002.ugpop. All rights reserved.




■デジタル用語辞典:

▲このページの上へ

■ マスターブートレコード2 ■

前回はコンピュータの起動の仕組みについて、「マスターブー
トレコード」の説明を行ないました。

ハードディスクのように1つの物理的な物に対して「論理ドラ
イブ」という複数の区画(パーティション)が存在出来る場合
は、論理ドライブを認識する為の専用のプログラムを格納して
おく領域「MBR(Master Boot Record)」を用意しておかなければ
ならない事を解説しました。

今回はマスターブートレコードを利用してどのようにコンピュ
ータが起動するか解説を行ないます。

ハードディスクから起動する場合は、フロッピーディスクやCD
-ROMから起動する場合と異なり、このMBR(Master Boot Record)
に格納されているプログラムが起動されます。

 ┌──────┴──────┐         
 │    BIOS起動     │   ハードディスク
 └──────┬──────┘   ┌────┐
        │    MBR 読出  │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │MBR の内容をメモリに格納 │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │論理ドライブを認識する  │         
 │  プログラムの起動   │         
 └──────┬──────┘         

BIOSによって起動された「論理ドライブを認識するプログラム」
はハードディスク上の論理ドライブを認識します。

「論理ドライブを認識するプログラム」は各論理ドライブの先
頭にあるブートセクターを読み出してメモリに格納し、その後
ブートローダに制御を移行します。
以下にその図を示します。

 ┌──────┴──────┐         
 │    BIOS起動     │   ハードディスク
 └──────┬──────┘   ┌────┐
        │    MBR 読出  │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │MBR の内容をメモリに格納 │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │論理ドライブを認識する  │         
 │プログラムの起動     │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │  ハードディスク上の  │         
 │  論理ドライブを認識  │         
 └──────┬──────┘   ハードディスク
        │論理ドライブの   ┌────┐
        │ブートセクタ読出し │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │ブートセクターの内容(ブー │         
 │トローダ)をメモリに格納  │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │  ブートローダ起動   │         
 └──────┬──────┘         

ハードディスク上の論理ドライブのブートセクタを読み出して
ブートローダに制御を移行しています。

ところで、論理ドライブがCドライブとDドライブの2つ存在
していたとします。

この場合、どちらの論理ドライブのブートセクターを読み出す
のでしょうか?

実は、これを判断する為の情報もMBRに格納されています。
前回書いたように、物理的に1つのハードディスクを複数の区
画に分けることを「パーティションをきる」といいます。
そしてこれらの分けられた区画(パーティション)にそれぞれ
存在しているブートセクタのどれを使うのかという情報がフラ
グとしてMBRに格納されているのです。
このフラグはパーティションをきる時に設定されたり、OSをイ
ンストールする時に設定されたりします。

「論理ドライブを認識するプログラム」はこのフラグを見て、
どの論理ドライブのブートセクタを読み出すかを判断します。

ブートローダを起動するのに使用されるパーティションの事を
「アクティブパーティション」といいます。
「アクティブパーティション」は1つのハードディスク上に1
つしか存在させることが出来ません。

以上でハードディスクからコンピュータを起動する場合の解説
は終わりです。後はフロッピーディスクやCD-ROMから起動する
場合と同じ流れになります。

最後にハードディスクから起動する場合の流れの全体図を示し
てこの講座を終わりたいと思います。

 ┌─────────────┐         
 │  パソコンの電源投入  │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │プロセッサの自己診断(BIST)│         
 └──────┬──────┘         
        │   CS:FFFF IP:FFF0     
 ┌──────┴──────┐         
 │    BIOS起動     │   ハードディスク
 └──────┬──────┘   ┌────┐
        │    MBR 読出  │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │MBR の内容をメモリに格納 │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │論理ドライブを認識する  │         
 │プログラムの起動     │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │  ハードディスク上の  │         
 │  論理ドライブを認識  │         
 └──────┬──────┘   ハードディスク
        │論理ドライブの   ┌────┐
        │ブートセクタ読出し │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │ブートセクターの内容(ブー │         
 │トローダ)をメモリに格納  │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │  ブートローダ起動   │   ハードディスク
 └──────┬──────┘   ┌────┐
        │OSローダ読出    │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │ OSローダをメモリに格納 │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │   OSローダ起動    │   ハードディスク
 └──────┬──────┘   ┌────┐
        │ OS読出      │    │
        │←─────────┤    │
        │          └────┘
 ┌──────┴──────┐         
 │   OSをメモリに格納  │         
 └──────┬──────┘         
        │                
 ┌──────┴──────┐         
 │     OS起動     │         
 └─────────────┘         


参考文献:80x86/80x87ファミリー・テクニカルハンドブック
      http://homepage2.nifty.com/winfaq/howtoboot.html



←前へ戻る    ▲このページの上へ