組み込み向けにinitrdを使いたかったのだが、どうもinitramfsに移行しているみたいで、試行錯誤中!(initramfsを使ってのinitrd?)
とりあえず、Debianのx86用initramfsファイルを確認。
確認方法
① "/boot"からinitrdファイルを作業ディレクトリにコピー
cd ~/work/
cp /boot/initrd.img-2.6.18-3-686 ./
② 名前を修正(gzipが認識しないため)
mv initrd.img-2.6.18-3-686 initrd.img-2.6.18-3-686.gz
③ ファイルの解凍
gzip -d initrd.img-2.6.18-3-686.gz
④ cpioでファイルを展開
cat initrd.img-2.6.18-3-686 | cpio -id
で、中身を見ると、どうやら"init"が肝みたいですね~ファイル内容はスクリプトで、内部でrootファイルを変更しています。ちなみに、本ファイルでDebianが使用しているシェルはBusyboxのashのようです。あと、CentOS(RedHat ELもどき)はnashというものを使用しているみたいです。
内容的には
① initrd内のinitスクリプトが実行される。
② 各種起動に必要なドライバがロードされる。
③ ルートパーティションがマウントされ、ルートが変更される(ついでにinitも再実行される)。
今日の解析はここまで!(^^ゞ