您的位置:首页 > 运维架构 > Linux

制作linux根文件系统

2013-01-26 18:20 375 查看
1. initrd

2. initramfs

3. nand/mmcblk/ usb/ nfs

基于android的根文件系统:

    android编译完后生成三个image: boot.img, system.img, recovery.img. 它们都可以制作成根文件系统。

boot.img 是root目录生成的。

system.img是system目录生成的。

data.img 是data目录生成的。

recovery.img .....

这些目录都是用make_ext4fs命令生成的。这个命令可以把一个目录打包成ext4的image文件系统。   具体操作可参照build/core/Makefile.

      make_ext4fs生成的文件系统需要用simg2img工具去除spair信息后才能mount.

initrd, 即ramfs.

它的操作方法很简单,只要把生成的ext4文件系统直接加载到内存,然后设置好bootargs即可。需要注意的是initrd=addr,size要与kernel中的RAM_size要区配。否则kernel会输出RAMDISK: ...... too large. 的提示信息。

kernel编译时必须要选上 Device Driver--> Block devices--> ram block device support 及size.

bootargs参数; root=/dev/ram0 rw rootwait mem=64M initrd=0x40000000,0x1400000 console=ttyS0,115200

uboot cmd# fatload ...... 0x40000000 boot.img.ext4 #此处还可上传cpio格式的image.

initramfs

这个必须在kernel中选中 General Setup-->Initial RAM filesystem 及 source.

initramfs只能是cpio格式的image. 生成它可以用kernel里边的scripts/gen_initramfs_init.sh命令。生成的cpio文件在usr/initramfs_init.cpio

把android中的root目录下的文件打成initramfs可以直接启动, busybox打成initramfs时没有输出,原因未知,可能与/dev/console有关。

nand/mmc/usb/nfs

pass ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: