🚀
Linuxのシステム起動の流れ(BIOS)
Linuxの起動のプロセス
システムを立ち上げる処理をブート(boot)という。
ブートシーケンスとは、電源をいれてからログインプロンプトが表示されるまでに、行う一連の流れ。
カーネルの初期化、ファイルシステムのマウント、システムの様々な管理をするプログラム(デーモン)の起動、ネットワークの設定などOSが稼働するために必要なすべての設定までの一連の流れ
OS起動に失敗する場合の問題特定の際にも重要になる
BIOS/UEFI
・物理的なハードウェア上に書き込まれている
・起動デバイスの優先順位を決める
・デバイスの有効/無効化
・MBRを読み込み、得られたブートローダーに制御を移す
・記憶装置(HDD)等に関して最低限の認識を行う
・DEL、F2で設定
・日付と時刻、電源管理、起動デバイスの優先順位、組み込みデバイスの有効/無効化
ブートローダー
・Linuxシステムでは、GRUBが該当
カーネル
・高度にハードウェアを制御し、ルートファイルシステムのマウントなどの初期化を行う
・カーネルと初期RAMディスク(initramfs)の内容をメモリ上に展開
・カーネルイメージと、カーネルのバージョンに対応する初期RAMディスクは「/boot」ディレクトリに格納
・/sbin/initを起動
init/systemd/Upstart
・最初に起動されるプロセスでPIDは必ず1
・「SysVinit」と呼ばれるinitプログラムを採用しているシステムでは「/sbin/inittab」が起動される
・SystemdやUpstartが主流
Discussion