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ディスクを再作成する必要がある