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
←前へ戻る ▲このページの上へ