2011年4月11日月曜日

USBメモリ ブートの仕組み

USBメモリ ブートの仕組み

USBメモリのデータ構造

基本的に HDD と同じような構造になっている。 MBR には、起動するためのプログラムコードやパーティションテーブルなどが記録されている。 ブートセクタには、起動するためのプログラムコードやファイルシステムの情報などが記録されている。

USBメモリもパーティションテーブルを持っているので、理論上は複数のパーティションに区切ることができる。 ただ、OS の制限により、USBメモリを複数のパーティションに区切ることができなかったり、一つのパーティションしか認識できなかったりすることがある。

MBR が無いこともある。(HP Drive Key Boot Utility でパーティション無しでフォーマットした場合など)

HDDエミュレーションとZIPエミュレーション

USBメモリは、BIOS に HDD または ZIP と認識されて起動することが多いようです。 どうしたら HDD になり、どうしたら ZIP になるか、という基準ははっきりしておらず、 ある PC で HDD 認識だったUSBメモリが別の PC で ZIP 認識になったり、 同じ PC でもUSBメモリのフォーマットによって変化したりするようです。 ただ、最近のマザーボードには、「USB Mass Storage Emulation Type」という設定項目が存在するものがあり、 HDD 認識(All Fixed Disc)にするか ZIP 認識(All Removable)にするかを設定できるようになっています。

USBメモリが BIOS に HDD として認識(HDDエミュレーション)される場合

  • BIOS の Boot Device を USB-HDD、Hard Disk などにすると起動する
  • DOS で起動するとCドライブになる

USBメモリが BIOS に ZIP として認識(ZIPエミュレーション)される場合

  • BIOS の Boot Device を USB-ZIP、Removable、RMD-FDD などにすると起動する
  • DOS で起動するとAドライブになる
  • MBR のプログラムコードは読み込まれないらしい
  • FD として利用できることがある

ブートの流れ

1.     BIOS が MBR を読み込む。

2.     MBR のプログラムコードが、パーティションテーブルを検索し、アクティブなパーティションのブートセクタを読み込む。

Invalid partition table」「Error loading operating system」「Missing operating system」などのエラーはここで発生。 HDDエミュレーションのときは、通常の HDD と同じように、パーティションがアクティブになっていないと起動に失敗します。 ZIPエミュレーションのときは、MBR のプログラムコードは実行されないようです。

3.     ブートセクタのプログラムコードが、OS のシステムファイルを読み込む。

Invalid system disk」「Disk I/O error」「Disk error」「NTLDR is missing」などのエラーはここで発生。

4.     OS の起動が開始される。

USBブートと複数LUN

ひとつの機器で複数のドライブとして認識される、マルチカードリーダや、仮想FDD機能を持つUSBメモリ、仮想CD機能を持つポータブルHDDなどが複数LUNです。 BIOSがこの複数LUNに対応していない場合、先頭のLUNのドライブからしかブートできません。 USB機器によっては、スイッチの切り替えで先頭LUNのドライブを認識しないようにして、次のLUNのドライブからブートできるようになっているものもあります。

 

0 件のコメント:

コメントを投稿