🚀

Linuxのシステム起動の流れ(BIOS)

2024/10/27に公開

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