ext4文件系统制作

本文转载自:http://blog.csdn.net/u011784994/article/details/53816976

make_ext4fs用于Android平台上制作ext4文件系统的镜像。用法举例:

make_ext4fs -l 512M -s -a system system.ext4img system

之后再使用simg2img制作镜像。

有一个问题是,使用这样制作的镜像,system分区文件的权限都是预定的,即使先修改system目录文件权限后在制作镜像,烧入设备后,其权限仍未改变。关键问题在make_ext4fs工具,在制作ext4fs时更改了权限,其依据为system/core/private/android_ilesystem_config.h所定义的权限。

查询make_ext4fs的参数含义,可以了解到这一点。


-l 512M"是分区大小,i9100的system分区是512M;
-s就是生成ext4的S模式制作;
"-a system",是指这个img用于Android系统,挂载点是/system,使用这个参数,make_ext4fs会根据private/android_filesystem_config.h里定义好的权限来给文件夹里的所有文件重新设置权限,如果你刷机以后发现有文件权限不对,可以手工修改android_filesystem_config.h来添加权限,重新编译make_ext4fs,也可以不使用 “-a system”参数,这样就会使用文件的默认权限。

如果不使用-a参数,则可。

----------------------------------------------------------------------------------------------------------------------

制作ext4文件系统需要使用make_ext4fs命令,例如:

#make_ext4fs -s -l 314572800 -a root -L linux  ./rootfs_qt.img  ./root
执行之后即会将root文件打包成  rootfs_qt.img 文件系统镜像。
下载:make_ext4fs
-------------
关于各参数的含义
命令行下执行make_ext4fs即可看到使用方式:
root@DingMZ:~# make_ext4fs
Expected filename after options
make_ext4fs  [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
    [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
     [ -L <label> ] [ -f ] [ -a <android mountpoint> ]
     [ -z | -s ] [ -J ]
     <filename> [<directory>]
-------------------------------------------------------------------
-s  就是生成ext4的S模式制作;
-l   314572800  是分区大小;
-a root 是指这个img用于Linux系统若为-a system即表示为android系统,挂载点即是/system。使用这个参数,make_ext4fs会根据private/android_filesystem_config.h里定义好的权限来给文件夹里的所有文件重新设置权限,如果你刷机以后发现有文件权限不对,可以手工修改android_filesystem_config.h来添加权限,重新编译make_ext4fs,也可以不使用 “-a system”参数,这样就会使用文件的默认权限
./rootfs_qt.img  表示在当前目录下生成镜像文件。
./root 指定源路径。
原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7347306.html