如何从 RHEL iso 中提取 initrd 映像并将脚本放入 initrd /bin/

如何从 RHEL iso 中提取 initrd 映像并将脚本放入 initrd /bin/

我编写了一个自定义的 shell 脚本(命令),我想将其放入 initrd /bin 中,然后,我希望将其复制到 Linux 操作系统 /opt/xyz 目录。其中 xyz 是安装过程中创建的自定义目录。

我怎样才能完成这个任务。

答案1

如何 ?

获取 Redhat initramfs 示例

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

我们有什么?

  • initramfs.img:gzip 压缩数据,来自 Unix,最后修改: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:gzip 压缩数据,来自 Unix,最后修改:2015 年 12 月 19 日星期六 06:32:08,最大压缩

现在,启动内核应该很容易了。

相关内容