使用gen_initramfs_list.sh脚本轻松创建cpio格式的initramfs文件

43 篇文章 1 订阅
16 篇文章 0 订阅
luther@gliethttp:/luther/linux-2.6.30.4$ ./scripts/gen_initramfs_list.sh -o initramfs.gz -u 0 -g 0 /vobs/crosscomplie_tootls/busybox-1.14.3/_install/
其中/vobs/crosscomplie_tootls/busybox-1.14.3/_install/为我ramdisk的原始数据
luther@gliethttp:/luther/linux-2.6.30.4$ ls /vobs/crosscomplie_tootls/busybox-1.14.3/_install/
bin  dev  etc  init  lib  proc  sbin  sys


PS:
使用find . | cpio -o -H newc | gzip > ../ramdisk.cpio.gz
直接生成cpio.gz是一当前目录即.为释放目的目录,
而使用gen_initramfs_list.sh脚本生成的.cpio.gz是以/根目录为释放目录的.
所以
luther@gliethttp:~$ cpio -i -F ramfs      // 使用find .生成的,会将cpio包中内容释放到当前目录
luther@gliethttp:~$ cpio -i -F initramfs  // 使用gen_initramfs_list.sh脚本生成的cpio包中内容会被释放到/根目录,所以千万不要使用sudo用户执行,否则就会覆盖了.
他们会释放到不同目的目录下.

实验如下:
有些内核.config中定义了如下4行,
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0

luther@gliethttp:/luther/linux-2.6.30.4$ mkdir gliethttp
luther@gliethttp:/luther/linux-2.6.30.4$ touch gliethttp/abc
luther@gliethttp:/luther/linux-2.6.30.4$ mkdir gliethttp/dir0
luther@gliethttp:/luther/linux-2.6.30.4$ sudo su
root@gliethttp:/luther/linux-2.6.30.4# touch gliethttp/def
root@gliethttp:/luther/linux-2.6.30.4# mkdir gliethttp/dir1
luther@gliethttp:/luther/linux-2.6.30.4$ ./scripts/gen_initramfs_list.sh -o ram0.gz gliethttp
gliethttp 755 1000 1000 gliethttp/abc 644 1000 1000 gliethttp/def 644 0 0 gliethttp/dir0 755 1000 1000 gliethttp/dir1 755 0 0
luther@gliethttp:/luther/linux-2.6.30.4$ ./scripts/gen_initramfs_list.sh -o ram1.gz -u 0 -g 0 gliethttp
gliethttp 755 1000 1000 gliethttp/abc 644 1000 1000 gliethttp/def 644 0 0 gliethttp/dir0 755 1000 1000 gliethttp/dir1 755 0 0
luther@gliethttp:/luther/linux-2.6.30.4$ sudo su
root@gliethttp:/luther/linux-2.6.30.4# ./scripts/gen_initramfs_list.sh -o ram2.gz gliethttp
gliethttp 755 1000 1000 gliethttp/abc 644 1000 1000 gliethttp/def 644 0 0 gliethttp/dir0 755 1000 1000 gliethttp/dir1 755 0 0
root@gliethttp:/luther/linux-2.6.30.4# ./scripts/gen_initramfs_list.sh -o ram3.gz -u 0 -g 0 gliethttp
gliethttp 755 1000 1000 gliethttp/abc 644 1000 1000 gliethttp/def 644 0 0 gliethttp/dir0 755 1000 1000 gliethttp/dir1 755 0 0

不知道为什么上面4个文件使用vbindiff比较之后都不相同,所以看来
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
定义还是对输出存在影响的[luther.gliethttp]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值