嵌入式系统中不同文件系统的应用与特性
1. UBIFS 文件系统
UBIFS 借助 UBI 卷来构建强大的文件系统,它添加了子分配和垃圾回收功能,形成完整的闪存转换层。与 JFFS2 和 YAFFS2 不同,它将索引信息存储在芯片上,因此挂载速度快,但挂载 UBI 卷可能需要较长时间。它还支持写回缓存,这使得写入速度更快,但在掉电时可能会丢失未从缓存刷新到闪存的数据,可使用 fsync(2)
和 fdatasync(2)
函数在关键节点强制刷新文件数据。
UBIFS 有一个日志用于掉电后的快速恢复,日志最小为 4 MiB,因此不适用于非常小的闪存设备。
挂载 UBI 卷 :创建 UBI 卷后,可以使用卷的设备节点(如 /dev/ubi0_0
)或整个分区的设备节点加上卷名进行挂载,示例命令如下:
# mount -t ubifs ubi0:vol_1 /mnt
创建 UBIFS 文件系统镜像 :这是一个两阶段的过程。
- 第一阶段:使用 mkfs.ubifs
创建 UBIFS 镜像,需要指定页面大小( -m
)、UBI LEB 大小( -e
)和卷中最大擦除块数( -c
)。例如,创建一个名为 rootfs.ubi
的 UBIFS 镜像: