起動とシャットダウン


🐞 起動

Linuxの起動の大まかなフローは次のとおりです。

BIOSの読み込み

コンピュータの電源をオンにするとBIOSが次の処理を実行していきます。

  1. BIOS(Basic Input/Output System) がハードの初期化と自己診断処理を実施する
  2. BIOSに設定された起動デバイスからブートローダー取得する
  3. セクタの先頭(0)のデータを読み込んで、ブートローダー起動する
  4. ブートローダーLinuxのファイルシステムを認識し、カーネルファイルを読み込む

カーネル起動後の処理

  1. ブートローダーカーネルと初期ファイルシステム(initramfs)をメモリにロードする
  2. initramfsのinitファイルを実行して、ルートファイルシステムのマウントする
  3. ルートファイルが見つかると、エラーチェックをしてからマウントする
  4. initramfsファイルは削除されて、ルートファイル上でinitを実行します
  5. initプロセスが、内部変数の初期化やデバイスの検出と初期化などを行う

initファイルの実行内容

  • ルードファイルにアクセスするために必要なモジュールをロード
  • モジュールごとに必要なブロック特殊ファイルを/devに生成する
  • RAIDやLVMを使う場合はinitがセットアップを行い、ルートにアクセスできるようにする

シャットダウン

Linuxでは次のシャットダウンや再起動コマンドがあります。

  • shutdown: シングルユーザーモードへ移行。オプションでシステム停止、再起動などできる
  • halt: システムを停止状態に移行する
  • reboot: システムを再起動する。ファイルシステムのsyncとunmountの処理が同時に行わる

🍮 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)