将欲奪之、必固與之。

いろいろなこと

Linuxの起動シーケンス

Linuxが起動するまで

1.電源ON
2.BIOS

CPUやメモリ、アダプタの状態確認
 ↓
各アダプタ上の組み込みOSがそれぞれの状態確認(RaidコントローラやNIC、HBAなど)
 ↓
起動デバイスの先頭に書き込まれたブートストラップレコードをメモリ上に読み込んで実行する
 (起動メディアの先頭512バイトがMBR。その先頭から446バイトがブートストラップ・ローダ)

3.ブートストラップ・ローダ

起動デバイスの別の場所に格納されたブートローダGRUB)をメモリに読み込んで実行する

4.GRUB処理

起動デバイスに保存されたカーネル本体と初期RAMディスクのファイル(/boot)をメモリに読み込む

5./boot

grub.confから対応する初期RAMディスクとカーネルがメモリに読み込まれ、カーネルを実行
 ↓
初期RAMディスクからデバイスドライバを読み込む

※初期RAMディスクとカーネルはBIOSのディスクアクセス機構を使用してメモリに展開される
※初期RAMディスクには最低限、起動ディスクのデバイス・ドライバが含まれていなければならない。
 →/lib以下のモジュールにアクセスするためにはデバイス・ドライバが必要だが、
 起動直後のカーネルは必要なデバイス・ドライバを読み込んでいないためアクセス出来ない。
 初期RAMディスクの実態は、そのアクセスに必要なデバイス・ドライバが含まれたアーカイブファイル
。 ※起動デバイス用のデバイス・ドライバを導入した場合は、同じデバイス・ドライバを含んだ初期RAMディスクを再作成する必要がある