RHEL isoからinitrdイメージを抽出し、スクリプトをinitrd /bin/に入れる方法

RHEL isoからinitrdイメージを抽出し、スクリプトをinitrd /bin/に入れる方法

initrd /binに入れたいカスタムシェルスクリプト(コマンド)を作成し、それをLinux OS /opt/xyzディレクトリにコピーしようとしています。ここで、xyzはインストール中に作成されたカスタムディレクトリです。

これをどのように実行できますか?

答え1

どのように?

Redhat initramfsの例を取得する

cp /boot/initramfs-2.6.32-220.el6.x86_64.img initramfs.img

私たちは何を持っていますか?

  • initramfs.img:Unixのgzip圧縮データ、最終修正:2015年10月22日木曜日07:04:25、最大圧縮

圧縮する

gunzip < initramfs.img > initramfs.stage1
  • initramfs.stage1: ASCII cpio アーカイブ (CRC なし SVR4)

それを抽出する

cpio -icv < initramfs.stage1
(lots of line)
usr/sbin
usr/sbin/eject
usr/sbin/chroot
96258 blocks

私のものを追加

mkdir opt/xyz
date > opt/xyz/foo.txt

リードなし/

cpio リメイク (initramfs.* ファイルを削除しました)

find . -type f -print | cpio -ocv > ../newinitram.stage2
(lots of lines)
./usr/bin/mkfifo
./usr/sbin/eject
./usr/sbin/chroot
96186 blocks

私たちは何を持っていますか?

  • ../newinitram.stage2: ASCII cpio アーカイブ (CRC なし SVR4)

今圧縮してみてください。

gzip -9 < ../newinitram.stage2 > newinitrd.stage3
  • newinitrd.stage3:Unixのgzip圧縮データ、最終修正:2015年12月19日土曜日06:32:08、最大圧縮

これでカーネルの起動が簡単になりました。

関連情報