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) |