我编写了一个自定义的 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,最大压缩
现在,启动内核应该很容易了。