最終更新:2022-08-18 (木) 17:36:44 (588d)
initramfs
Top / initramfs
a new model for initial RAM disks
WubiuefiでUbuntuが起動せずにinitramfsの画面になったとき
- チェックディスクするかWindowsを一度立ち上げると直るかも
概要
- initrdから読み込まれるinitrdイメージの形式
- 圧縮されたCPIOアーカイブ
- Linux 2.6以降ではinitramfsの方が主流
- Ubuntuだとinitrd.imgという名前 (Linux/bootにある)
initramfs内でやること
- ブートパラメータの解釈
- ハードウェア認識
- カーネルモジュールのロード
- デバイスノードの作成
- ネットワークの起動
- HDDのマウント
- tmpfsのマウントと引き継ぎファイルの避難
- switch_rootなどなど
Debian
- Debian の起動は、初期 RAM ファイルシステム (initramfs または 初期 RAM ディスク の意で、initrd と呼ばれることもあります。)を含めて 2 段階のプロセスを踏みます。
- まず、ブートローダがカーネルと initramfs をメモリに読み込み、実行制御をカーネルに渡します。
- 基本的な初期化が終了すると、カーネルが initramfs アーカイブを展開し、一時的なルートファイルシステムとしてマウントします。initramfs にはカーネルモジュールと、物理デバイス、または論理デバイスの初期化を必要とするユーザ空間プログラムが含まれています。本物のルートファイルシステムもここに含まれます。
- initramfsのinitスクリプトがモジュールをロードし、その他の初期化処理を行います。
- このステージの最後に、run-initがinitramfsをメモリから消去し、本物のルートファイルシステムをロードします。
- そして本物のルートファイルシステム上のLinux/sbin/initプログラムに制御を渡します。
展開
gunzip -c /boot/initrd.img-`uname -r` | cpio -ivd
コマンド
- lsinitramfs?
- mkinitramfs
- update-initramfs
.config
中身
- initramfs/bin
- initramfs/conf
- initramfs/etc?
- initramfs/init
- initramfs/lib?
- initramfs/lib64?
- initramfs/run?
- initramfs/sbin
- initramfs/scripts?