普段あまり意識はしないが、なかなかにややこしい。奥が深いというよりは、過去のしがらみを引きずりまくってグダグダな感がある(特に用語が)。でも、代替の無い大事な手順であるし、比較的資料も多いので、調べて学習するのはさほど苦痛ではない。 *結論 [#g88fbcd0] 電源ON ==> BIOSが起動可能HDD見つけ、MBRに行く ==> MBR内コード実行し、起動すべきパーティションを判断し、そこのPBRに行く(OS非依存) ==> PBRでの指示に従う(OS依存) とりあえずHDDの場合。OSが何であれ、MBRには適切な何かが必ず無くてはならない。つまり -新しいHDDにOSをセットアップする際には、MBRにも適切な処置を必ず施す必要がある -既存のHDDにOSを追加する際には、既存MBRが何か把握し、現状維持か刷新か判断する必要がある まあ最近のOSだったらほっといても適切に判断してくれるのだろうけど *link [#f898d2f3] -[[ブートとハードディスクのすべて:http://nobumasa-web.hp.infoseek.co.jp/boot_hdd.html]] <== 必読 -[[ハードディスクドライブの基礎知識:http://www.linux.or.jp/JF/JFdocs/hdd-intro.html]] -[[LILO "the Linux Loader" の動作について:http://www.linux.or.jp/JF/JFdocs/inside-lilo.html]] *HDD [#u1557e28] データ記録デバイスの主役はHDDなので、各種ブートの話もHDDの基礎知識があると何かと理解しやすい。 **link [#q8fb81da] -[[ハードディスクドライブの基礎知識:http://www.linux.or.jp/JF/JFdocs/hdd-intro.html]] **機械的な構造 [#b96bc16f] 薄い円盤(ディスク、プラッタ)が積層した構造を持つ。稼動中はこれらが回転し、ヘッドは適宜動いて目当てのデータがある位置に到達しようとする。 トラックとは、円盤上のある円周である。 シリンダとは、積層されたトラック(円筒)である。 セクタとは、最小単位まで細切れにされたトラックの一部分を指す。UNIX界隈ではブロックとも呼ばれるそうである。読み書きはセクタ単位で行われる。通常1セクタの(記憶域としての)大きさは512byteであるが、これはいずれ4096byteになるそうである([[ HDD業界団体が標準セクター・サイズを4Kバイトに拡大,「Windows Vista」は対応予定:http://itpro.nikkeibp.co.jp/article/USNEWS/20060324/233190/]])。 **領域、パーティション [#u56e24b4] ひとつのHDDには、基本領域と呼ばれる領域を4つまで作成することができる。領域が4つまでで十分ならば、これ以降の知識は必要ない。 4つ以上の領域が欲しいなら +拡張領域をひとつ作成 +論理領域を、その拡張領域の中に作成(いくらでも作れる) とする。拡張領域はコンテナに過ぎず、ひとつまでしか作れない。 *MBR (Master Boot Record) [#kb66f820] ''HDDの''最初のセクタである。 |アドレス範囲(十進、byte)|内容|h |0 - 445 | プログラムコード | |446 - 509 | パーティションテーブル | |510 - 511 | シグネチャ | 「プログラムコード」の部分に今後のブートの手続きが記されている。例えばWindowsをインストールすると「ブートストラップローダ」(固有名詞)が格納される(これを陽に行うには FDISK /MBR とすれば良い)。これの代わりにLILOやSystem Commanderなどのローダも格納できる。いずれもここに実際に格納されているのは「次の一手」を示すコードのみであり、残りはまた別な場所にある。 16x4=64byteの「パーティションテーブル」には、4つの基本(または拡張)領域の情報が格納されている。これらは具体的には下記のとおり。 -タイプ(ファイルシステムとかの) -開始・終了位置 -アクティブ(起動可能)か否か? 「シグネチャ」は 0xAA55 でなくてはならない。 *PBR (Partition Boot Record) [#q6779c8e] ''パーティションの''最初の方のセクタである。起動を司る点で雰囲気がMBRに似ているが、基本的にOSやファイルシステムに依存した構造を取る点で大きく異なる。