浅谈ubi文件系统制作

ubinfo -a

查看所有ubi分区信息

 

制作ubi文件系统

#制作UBI文件系统参数,与flash硬件有关

# -r:制定文件内容的位置

# -m:指定了最小的I/O操作的大小,也就是NAND FLASH一个page的大小

# -e:逻辑擦除块大小

# -p:物理擦除块大小

# -c:最大的逻辑擦除块数量

 

#1、将目录打包成ubifs

#2、创建合并配置文件

#3、将ubifs合并成ubi烧录包

#4、删除产生的临时文件

 

mkfs.ubifs -r ./rootfs -o ./rootfs.ubifs -m 4096 -e 253952 -c 2146 -F

 

制作Ubinize 的配置文件ubinize.cfg

echo

"[sysfs_volume]

mode=ubi

image=\"./rootfs.ubifs\"

vol_id=0

vol_type=dynamic

vol_name=rootfs

vol_size=\"64MiB\""

> ./ubinize.cfg

 

ubinize -o rootfs.ubi -m 4096 -p 256KiB -s 4096 ./ubinize.cfg

 

rm ./rootfs.ubifs

rm ./ubinize.cfg

 

一个ubi分区如果涉及到多个卷的话,制作时需要添加各个卷信息

mkfs.ubifs -r ./usrdata -o ./usr_data.ubifs -m 4096 -e 253952 -c 2146 -F

mkfs.ubifs -r ./update -o ./update.ubifs -m 4096 -e 253952 -c 2146 -F

mkfs.ubifs -r ./paramconfig -o paramconfig.ubifs -m 4096 -e 253952 -c 2146 -F

echo "

[usrdata_volume]

mode=ubi

image=\"./usr_data.ubifs\"

vol_id=0

vol_type=dynamic

vol_name=usrdata

vol_flags=autoresize

[update_volume]

mode=ubi

image=\"$./update.ubifs\"

vol_id=1

vol_type=dynamic

vol_name=update

vol_size=\"16MiB\"

[hdconfig_volume]

mode=ubi

image=\"$./paramconfig.ubifs\"

vol_id=2

vol_type=dynamic

vol_name=paramconfig

vol_size=\"16MiB\"

" > ./ubinize.cfg

ubinize -o ./usr_data.ubi -m 4096 -p 256KiB -s 4096 ./ubinize.cfg

rm ./update.ubifs

rm ./paramconfig.ubifs

rm ./usr_data.ubifs

rm ./ubinize.cfg

实列:

关联ubi设备,-m 选项指定mtd设备分区, -d指定ubi号

ubiattach /dev/ubi_ctrl -m 12 -d 0

挂载设备

mount -t ubifs -o rw ubi3_0 /tmp/recoveryfs/

 

卸载设备

umount /tmp/recoveryfs/

解除ubi设备关联

ubidetach -m 12 -d 0

 

你可能感兴趣的:(Linux系统系列,ubi系统)