[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]


Debian Linux カーネルハンドブック
第 7 章 - 起動用RAMイメージ (initramfs) アーカイブの管理


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

この仕組みを採用することによって、 2 つの大きな目的を達成しています。まず、ドライバをモジュールとしてコンパイルすることでカーネルのサイズを抑えること。 (initramfs がない場合、ルートデバイスを起動し初期化するために必要なドライバは、あらかじめカーネルに組込まれていなければなりません。) そして、カーネルで行うことができないユーザ空間のユーティリティで実行される初期化が必要な設定の実行を可能にすることです。


7.1 Initramfs 生成ツール

通常 initramfs は特定のハードウェア/デバイス構成とカーネルのバージョン毎にカスタマイズする必要があるので、パッケージの一部としては提供されず、カーネルのインストール時にその場で生成されます。今のところ Debian で initramfs を生成できるツールは 2 つあります。initramfs-tools によって提供される update-initramfs (標準) と dracut パッケージによって提供される dracut-update-initramfs (実験的) です。


7.2 initramfs の再生成

適切な linux-image をインストールした後に、その変更をしたい場合は initramfs を再生成しなければなりません。initramfs は次のコマンドによってアーカイブ化されます。

     # dpkg-reconfigure linux-image-3.2.0-2-686-pae

linux-image-3.2.0-2-686-pae は initramfs の生成を必要としているカーネルパッケージの名前です。


7.3 Initramfs の中身を検査する

学習のためや、問題を分析するために initramfs の中身を調べることが時として役に立ちます。initramfs は cpio アーカイブとして圧縮されており、展開には

     $ zcat /boot/initrd.img-3.2.0-2-686-pae | cpio -i

コマンドを使用します。このコマンドでカレントディレクトリに initramfs の中身が展開されます。

initramfs の中身の一覧を取得するために、cpio -tオプションか、

     $ lsinitramfs /boot/initrd.img-3.2.0-2-686-pae

[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]


Debian Linux カーネルハンドブック

version 1.0.16, Fri 14 Aug 12:53:11 CEST 2015

The Debian Kernel Handbook Project