Linuxでは、メモリ上にファイルシステムを作成できるRAMディスクと呼ばれる機能や
ファイルをファイルシステムとして、マウントすることのできるループバックマウントという
機能を持っています。
ファイルをファイルシステムとして、マウントすることのできるループバックマウントという
機能を持っています。
上記のような機能を使って、ファイルとして用意されているファイルシステムを
RAMディスクとしてメモリ上に展開させ、それを暫定的なルートファイルシステムとして
カーネルを起動し、その後実際のルートファイルシステムをマウントする。
という起動方法を取ることができます。
RAMディスクとしてメモリ上に展開させ、それを暫定的なルートファイルシステムとして
カーネルを起動し、その後実際のルートファイルシステムをマウントする。
という起動方法を取ることができます。
この起動用のRAMディスクを初期RAMディスク(Initial RAM Disk:initrd)といいます。
例えばルートファイルシステムがSCSIハードディスク上にある場合、
初期RAMディスクにSCSIドライバを用意しておくことで、起動中のカーネルから
ディスクにアクセスできるようになります。
但しこの場合、BIOSレベルでSCSIアクセスが可能であることが前提となります。
例えばルートファイルシステムがSCSIハードディスク上にある場合、
初期RAMディスクにSCSIドライバを用意しておくことで、起動中のカーネルから
ディスクにアクセスできるようになります。
但しこの場合、BIOSレベルでSCSIアクセスが可能であることが前提となります。
初期RAMディスクには、ファイルシステムイメージを圧縮したinitrdと、
cpioアーカイブを圧縮したinitramfsの2種類があります。
最近のディストリビューションでは、一般的にinitramfsが利用されています。
2種類の初期RAMディスクを作成するコマンドは以下になります。
cpioアーカイブを圧縮したinitramfsの2種類があります。
最近のディストリビューションでは、一般的にinitramfsが利用されています。
2種類の初期RAMディスクを作成するコマンドは以下になります。
- ファイルシステムイメージを圧縮した初期RAMディスクinitrd
mkinitrd [RAMディスクイメージファイル] [カーネルバージョン]
- cpioアーカイブを圧縮した初期RAMディスクinitramfs
mkinitramfs -o [RAMディスクイメージファイル] [カーネルバージョン] #mkinitramfs -o initrd-2.6.30.img 2.6.27 カーネル2.6.30用の初期RAMディスク/boot/initrd-2.6.30.imgを作成します。