注目の書籍

好評発売中!

知識ゼロから始めるLinuxサーバーの作り方

Linux初心者でも
本格 サーバーが“即席”で 完成!自宅サーバー
クラウド化も!

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux

Linuxキーワード

日経Linux

initrd
initrdとは

イニットアールディ

2006/12/11
畑 陽一郎=日経Linux
写真1 initrdのディレクトリ構成例。これは,Fedora Core 6に付属するinitrdの内容を展開したもの。
写真1 initrdのディレクトリ構成例。これは,Fedora Core 6に付属するinitrdの内容を展開したもの。
[画像のクリックで拡大表示]

 initrdは,Linuxが起動する際に一時的に利用されるファイル・システムのイメージです。initrdは通常,/boot/initrd-xxxx.imgというファイルとして,Linuxシステム内に保管されています。initrdの内容を展開すると,写真1のように,必要最小限のファイルやコマンドを備えたファイル・システムであることが分かります。

 initrdはシステム起動時に,カーネルによってメモリー上に展開されます。具体的には,メイン・メモリー内に確保したRAMディスク領域のファイル・システムとして使われます。ハード・ディスク上のファイル・システムをマウントした後はメモリーから消去されます。

 なぜ,initrdのような仕組みが必要なのでしょうか。その理由は,Linuxを柔軟に起動できるようにするためです。起動するシステムのハードウエア構成が決まっていれば,initrdは不要です。しかし,さまざまなシステム構成に対応するには,カーネルに含まれていないモジュールを,システム起動時に組み込む仕組みが不可欠です。initrdを利用すると,カーネルに含まれていないモジュールをinsmodコマンドでシステム起動時に組み込むことができます。

 例えばカーネルがSCSIやRAID構成,USBに対応していなかったとしても,このような装置に対応するモジュールを用意しておけば,(そのカーネルを用いた)LinuxディストリビューションをSCSIハード・ディスク上にインストールし,そこから起動して利用することが可能です。

 写真1からは,initrdが/bin,/dev,/etc,/lib,/loopfs,/proc,/sys,/sysrootといったディレクトリを含むことが分かります。さらに,/binにはカーネル・モジュールをロードするinsmodコマンドなどが,/libにはカーネル・モジュール(*.ko)が,存在することも分かります。

 一部の組み込みシステムのようにハード・ディスクを備えていない場合は,initrdが展開されたRAMディスクのまま,Linuxシステムとして利用されることもあります。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介