如果要在机器内部的EMMC上创建SDCARD分区,就需要把它格式化成FAT文件系统,否则开机后,会提示你的sdcard需要格式化。
我这里说一下怎么去用烧写image的方式去格式化sdcard分区。以下步骤都是在ubuntu系统上做的。
1.首先要知道自己的sdcard分区的大小。
这个一般要看你的partition怎么化分的,如果你要看一部手机的sdcard分区有多大,可以通过以下命令:
cat /proc/emmc //这个命令可以让你获得FAT分区的partition id
cat /proc/partitions //这个命令可以让你看到与prtition id相对应的blocks,一个blocks为1024byte
2.在PC机上创建fat格式的Image
mkfs.vfat -v -C fat.img [block-count]
这样fat.img就是一个FAT分区的镜像了,你还可以往里面放你需要内置的东西。
3.装入需要内置的文件
mkdir fat_disk
mount -o loop,iocharset=utf8 fat.img fat_disk/
fat.img 是你创建的FAT分区镜像
fat_disk是要挂载的文件夹
这时你用df命令,就可以看到/dev/loopx被mount到fat_disk,
这样把内置的文件放到fat_disk目录下,然后umount fat_disk,预置的东西就已经在fta.img里了。
这时你就可以烧写fat.img,但是这个文件跟分区大小一样大,如果分区为1G,则它就为1G,比较大,所以要想办法压缩。
4.压缩fat.img
其实fat.img中有用只为前半部分,后面全为0x00的字节,所以只需要把有用的前部分烧写就可以了。
如果你没有预置文件,则前面的1M字节就足够了,用dd命令:
dd if=fat.img of=fat_flash.img bs=1024 count=1024
这样只要把得到的1M大小的fat_flash.img烧写就可以了。