😼 起動
Linuxの起動の大まかなフローは次のとおりです。
BIOSの読み込み
コンピュータの電源をオンにするとBIOSが次の処理を実行していきます。
- BIOS(Basic Input/Output System) がハードの初期化と自己診断処理を実施する
- BIOSに設定された起動デバイスからブートローダー取得する
- セクタの先頭(0)のデータを読み込んで、ブートローダー起動する
- ブートローダーLinuxのファイルシステムを認識し、カーネルファイルを読み込む
カーネル起動後の処理
- ブートローダーカーネルと初期ファイルシステム(initramfs)をメモリにロードする
- initramfsのinitファイルを実行して、ルートファイルシステムのマウントする
- ルートファイルが見つかると、エラーチェックをしてからマウントする
- initramfsファイルは削除されて、ルートファイル上でinitを実行します
- initプロセスが、内部変数の初期化やデバイスの検出と初期化などを行う
initファイルの実行内容
- ルードファイルにアクセスするために必要なモジュールをロード
- モジュールごとに必要なブロック特殊ファイルを
/dev
に生成する - RAIDやLVMを使う場合はinitがセットアップを行い、ルートにアクセスできるようにする
シャットダウン
Linuxでは次のシャットダウンや再起動コマンドがあります。
shutdown
: シングルユーザーモードへ移行。オプションでシステム停止、再起動などできるhalt
: システムを停止状態に移行するreboot
: システムを再起動する。ファイルシステムのsyncとunmountの処理が同時に行わる