|
初期RAMディスク(initial ramdisk)はLinuxカーネルのブート時に一時的なルートファイルシステムをメモリに読み込むための方式。 真のルートファイルシステムをマウントできるようになる前にファイルシステムを必要とする場面で使用される。 initrd とinitramfs(Linux 2.6.13 以降利用可能)の2種類の方式があるが、文脈によってはこれらを総称してinitrdと呼んでいる場合もある。 本記事でもinitrdとinitramfsの両方を記述する。 == 原理 == Linuxディストリビューションの多くは、なるべく広範囲なハードウェアでブートできるよう、単一の汎用的カーネルイメージで出荷されている。この汎用カーネルイメージのデバイスドライバ群はローダブル・カーネル・モジュールになっており、メモリの限られたコンピュータやフロッピーディスクなどの低容量媒体からもブートができるようカーネルイメージを巨大化させない工夫をしている。 このような方式では、ルートファイルシステムをブート時にマウントするには、事前に(ルートファイルシステム上にある)必要なモジュールを検出してロードしなければならないという問題が生じる(あるいは、ルートファイルシステムそのものがどこにあってどういう種類かを事前に知る必要がある)〔。 さらに問題を複雑にするのは、ルートファイルシステムがソフトウェアRAIDボリュームだったり、LVMだったり、(ディスクレス・ワークステーションの場合)NFSだったり、暗号化されたパーティションだったりする点である。これらはマウントに当たって特別な処理を必要とする。 もう1つ問題を複雑化させることとして、カーネルがハイバネーションをサポートしていることがある。ハイバネーションとは、システムを停止させて、その時点の全システムイメージをスワップパーティションや普通のファイルにダンプし、電源を切る機能である。次回立ち上げたとき、そのイメージをメモリにロードするには、ディスク上のイメージにアクセスできなければならない。 これらの特殊ケースに対応してカーネルにコードを加えるのを防ぐため、立ち上げの初期段階では一時的なルートファイルシステムを使う。これを初期ユーザ空間などと呼ぶ。このルートファイルシステムには真のルートファイルシステムのマウントに必要となる、ハードウェア検出、モジュールローディング、デバイス発見などのユーザー空間ヘルパーが存在する〔。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Initrd」の詳細全文を読む スポンサード リンク
|