最終更新:2016-09-15 (木) 18:44:10 (2772d)  

Linux/起動プロセス
Top / Linux / 起動プロセス

Debian

  • Debian の起動は、初期 RAM ファイルシステム (initramfs または 初期 RAM ディスク の意で、initrd と呼ばれることもあります。)を含めて 2 段階のプロセスを踏みます。
    • まず、ブートローダがカーネルと initramfs をメモリに読み込み、実行制御をカーネルに渡します。
    • 基本的な初期化が終了すると、カーネルが initramfs アーカイブを展開し、一時的なルートファイルシステムとしてマウントします。initramfs にはカーネルモジュールと、物理デバイス、または論理デバイスの初期化を必要とするユーザ空間プログラムが含まれています。本物のルートファイルシステムもここに含まれます。
    • initramfsinitスクリプトがモジュールをロードし、その他の初期化処理を行います。
    • このステージの最後に、run-initinitramfsをメモリから消去し、本物のルートファイルシステムをロードします。
    • そして本物のルートファイルシステム上のLinux/sbin/initプログラムに制御を渡します。

おおまかな順序

ブートローダ

vmlinux(init/main.c)

initramfs/init(initスクリプト)

Linux/sbin/init

順序

BIOS

ブートローダ (GRUB)

  • カーネルイメージ(vmlinux)とinitrdイメージをメモリ上にロードし、カーネルを起動する際に initrdのメモリアドレスを渡す。ブートの最終段階で、カーネルはinitrdイメージの先頭数ブロックを読み込み、そのフォーマットを判断する。

Linuxカーネル (vmlinux) / initramfs

initスクリプト

start_kernel

rest_init

kernel_init

Linuxinitの種類

SysVinit

処理

Upstart

systemd

カーネルイメージの形式

参考

関連