Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15531823
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: 嵌入式

2009-08-06 13:14:24

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]



阅读(5892) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~