先查询文件系统相关信息
unsquashfs -s jike.squashfs
Found a valid SQUASHFS 4:0 superblock on jike.squashfs.
Creation or last append time Sun Sep 13 16:56:13 2020
Filesystem size 8862.58 Kbytes (8.65 Mbytes)
Compression xz
Block size 262144
Filesystem is exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always-use-fragments option is not specified
Xattrs are not stored
Duplicates are removed
Number of fragments 33
Number of inodes 935
Number of ids 1
是xz压缩的,块大小256K,没有扩展属性
解包文件系统,并修改文件系统
unsquashfs jike.squashfs
修改过程略
打包squashfs,使用xz压缩,块大小256K
mksquashfs squashfs-root jike2.squashfs -b 256K -comp xz -no-xattrs
查询ubi的信息
ubinfo -a
取出内核镜像
cp /dev/ubi0_0 jike.kernel
将kernel和rootfs打包为ubi镜像下述配置保存为ubi.ini
[kernel]
mode=ubi
image=jike.kernel
vol_id=0
vol_type=static
vol_name=kernel
vol_size=6200KiB
[rootfs]
mode=ubi
image=jike2.squashfs
vol_id=1
vol_type=dynamic
vol_name=ubi_rootfs
[data]
mode=ubi
vol_id=2
vol_type=dynamic
vol_name=rootfs_data
vol_flags=autoresize
ubi打包两个卷
ubinize -o img.ubi -m 2048 -p 128KiB ubi.ini -v
验证ubi.img
加载mtd和ubi模块
modprobe mtdblock
modprobe ubi
加载nandsim模拟nand设备
modprobe nandsim first_id_byte=0xc8 second_id_byte=0xa1 third_id_byte=0x80 fourth_id_byte=0x15
cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00020000 "NAND simulator partition 0"
查询mtd0的信息
mtdinfo /dev/mtd0
将 ubi 与 /dev/mtd0 关联
modprobe ubi mtd=0
将 rootfs.ubi 加载到mtd设备,需要 mtd-utils 工具箱 (ubuntu apt install mtd-utils)
解除绑定
ubidetach /dev/ubi_ctrl -m 0
加载镜像
ubiformat /dev/mtd0 -s 2048 -f img.ubi -O 2048
ubiattach /dev/ubi_ctrl -m 0 -O 2048
查询ubi信息
ubinfo -a
这样重打包就完成了