最近工作中有个小的需求,要把一个目录做成ext3的image,存放到手机里的存储设备,比如MMC,NAND.Yaffs/Ext2有专门的工具来做这个转换。把特定目录的内容拷贝到手机里还有另外的方式,比如先用dd做一个image镜像,然后吧目录的内容cp过去。
由于手机是多用户系统,所以保留目录文件的用户和权限信息很重要。这就是用工具直接把目录制作成镜像的原因。
开源的工具里genext2fs可以把一个目录制作为ext2 image,此image可以直接从存储设备mount供kernel使用。genext2fs man page()
现在要把此工具生成的ext2镜像转化为ext3/4,所用到的tool是tune2fs.ext2/3/4的物理layout差别不大,可以用tune2fs工具进行convert。
下面是一个简单的转换过程,在ubuntu pc下完成的。
STEPS:
1. Initial dir info;
ll ext2/
total 0
-rw-r--r-- 1 root wangxingchao 0 2010-03-11 15:07 a
-rw-r--r-- 1 wangxingchao wangxingchao 0 2010-03-11 15:07 b
-rwxrwxrwx 1 tftpd wangxingchao 0 2010-03-11 15:07 c
-rw-r--r-- 1 daemon wangxingchao 0 2010-03-11 15:30 d
2. create image with tool
sudo genext2fs -b 20480 -d ext2/ ext3.img
3. change to ext3 type
sudo tune2fs -j ext3.img
4. mount as ext3
sudo mount -o loop ext3.img /home/wangxingchao/sd-card/
5. check result
/dev/loop0 on /home/wangxingchao/sd-card type ext3 (rw)
6. check dir information
ll
total 1029
-rw-r--r-- 1 root wangxingchao 0 2010-03-11 15:07 a
-rw-r--r-- 1 wangxingchao wangxingchao 0 2010-03-11 15:07 b
-rwxrwxrwx 1 tftpd wangxingchao 0 2010-03-11 15:07 c
drwx------ 2 root root 1048576 2010-03-11 15:32 lost+found
-rw-r--r-- 1 daemon wangxingchao 0 2010-03-11 15:30 d
Also, Canbe mount as Ext4 by tune2fs with "-O extents" option.
这样就实现了genext2fs-->ext2-image-->tune2fs-->ext3-image-->ext4-image的制作。
阅读(2040) | 评论(1) | 转发(0) |