ubi文件系统

Mtd

Mtd的意思是Memory technology device,就是存储技术设备的意思,多指flash。
mtd device 代表着物理设备,这个物理设备上存在着许多物理块(nand),这些块大部分是好的,也有少数是坏块,所以mtd device 代表着所有的好块和坏块。对这些mtd device,内核提供了读写等操作。

Ubi

Ubi的意思是Unsorted Block Images ,是一种原始flash设备的卷管理系统。这个系统能在一个物理的flash设备上管理多个卷并且能在整个flash芯片上实现损耗均衡。
一个UBI卷就是一串连续的逻辑擦除块(LEBs)。每一个逻辑擦除块可以被映射到任何一个物理擦除块(PEB)上面。这个映射是由UBI管理,这种映射对用户是透明的,同时这种映射也是UBI实现全局的损耗均衡的基础。通过每一个物理擦除块记录的擦除计数,可以将数据从损耗严重的物理块转移到损耗较少的擦除块。在这里插入图片描述

Ubifs

Ubifs的意思是 是一个新兴的应用于mtd上的日志型文件系统。可以有效的组织flash的坏块和peb的负载平衡,同时提供访问速度,减小内存消耗,具有日志的功能。是JFFS2的后续增强版。
UBIFS工作在UBI卷之上,不能在MTD设备之上运行
Ubi device 代表着物理介质上的逻辑设备。跟mtd device一样,也有读写等操作接口。可是这个设备在用户看来是没有坏块的,ubi device 负责了坏块的管理,并且对物理块进行了新的组织,但是在用户看来在ubi device中,却是进行了新的映射。这种映射目的在于负载的均衡。

下面是有关 Ubi 文件系统的一些详细信息:

  1. Ubi 文件系统是为闪存设备而设计的。与传统的文件系统相比,Ubi 可以更好地处理闪存设备上的坏块,因为它可以将坏块转换为虚拟块,并将数据移动到其他可用块。

  2. Ubi 文件系统采用了与 JFFS2(另一种常见的闪存文件系统)不同的日志型结构。与 JFFS2 一样,Ubi 将数据写入闪存设备的空闲块中,但它还会将元数据写入闪存设备的另一个区域。

  3. Ubi 文件系统可以跨多个闪存设备进行分区,并支持多个 Ubi 卷。这使得 Ubi 可以更好地处理大型闪存设备和数据集。

  4. Ubi 文件系统支持动态卷大小调整,这意味着可以根据需要增加或减小卷的大小。

  5. Ubi 文件系统还具有数据加密和压缩的功能,以提高数据传输速度并增强数据安全性。

  6. Ubi 文件系统还有一些工具可以帮助进行调试和性能优化,如 ubi-utilsubi_readerubinize 等。

  7. Ubi 文件系统由 Linux 内核支持,并在嵌入式系统和移动设备等领域得到广泛应用。

总之,Ubi 文件系统是一个用于闪存设备的高效、灵活和可靠的文件系统。它具有处理闪存设备上的坏块、跨多个设备分区、支持动态卷大小调整和数据加密等功能。

ubi常用工具

工具作用
ubinfo提供ubi设备和卷的信息
ubiformat格式化空的Flash设备,擦除Flash,保存擦除计数,写入UBI镜像到Flash
ubiattach链接MTD设备到UBI并且创建相应的UBI设备
ubidetachubiattach相反的操作,将MTD设备从UBI设备上去掉连接
ubimkvol从UBI设备上创建UBI卷
ubirmvol从UBI设备上删除UBI卷

ubinfo:

ubinfo是一个用于查询UBI文件系统信息的工具。它可以显示UBI分区的大小、块数、可用块数、擦除块数等信息,帮助用户管理和维护设备的文件系统。
常用参数如下:
在这里插入图片描述使用方法:

  1. 通过SSH或Telnet连接到设备,或者在设备的Linux系统上执行ubinfo命令;
  2. 在终端窗口中查看分区信息输出。

ubiformat

格式化MTD设备,把UBI镜像写入Flash
常用参数如下:
在这里插入图片描述

ubiattach

可以将UBI文件系统映射到闪存设备的某个物理块上上。
常用参数如下:
在这里插入图片描述

ubidetach

把MTD设备从UBI设备上去掉
常用参数如下:
在这里插入图片描述

ubimkvol

从UBI设备上创建UBI卷
常用参数如下:
在这里插入图片描述

ubirmvol

从UBI设备上删除UBI卷。
常用参数如下:
在这里插入图片描述

挂载ubi文件系统

一、Linux 系统中有关mtd和ubi的接口:

  1. cat /proc/mtd:可以看到当前系统的各个mtd情况,
  2. cat /proc/partitions: 分区信息,有上面的类似
  3. cat /sys/class/ubi/ubi0/*:当前系系统的ubi情况
  4. ls /dev/*:查看设备节点

二、假设挂载磁盘是/dev/mtd10,300MiB,ubi节点是ubi0,(已有文件系统ubi0挂载在/dev/mtd9)

  1. 加载ubi驱动:
sudo modprobe ubi
#查看是否加载成功:执行 ls /dev/ubi_ctrl 如果有ubi_ctrl节点,就表示加载成功;
  1. 格式化,ubiformt命令将mtd10分区格式化: ubiformat /dev/mtd10

  2. 创建ubi0节点,也就是绑定UBI到MTD分区:

ubiattach /dev/ubi_ctrl -m 10
#执行 ls /dev/ubi0 如果存在说明ubi attach 成功了;

# 参数” -m 10”表示使用 mtd10 分区,“ -b n”表示保留n个块用于坏块处理。

只有绑定了ubi 到 mtd 分区以后,才能在 /dev/ 下找到 ubi设备“ ubin(n=0、1、2······)”;

  1. 创建分区标识(ubi volume):
ubimkvol /dev/ubi0 -N rfs -s 280MiB(不能是300MiB,需要留些磁盘空间)

#参数“ /dev/ubi0”是上一步骤创建的ubi 设备。
#参数“ -N rfs”表示创建的卷名为“ rfs”。
#参数“ -s SIZE”表示创建的分区大小
  1. 挂载:mount -t ubifs ubi0:rfs /mnt

  2. 查看创建好的ubi卷:

#1.执行 dmesg 查看内核输出的ubi信息
dmesg
#2.使用ubinfo工具
ubinfo /dev/ubi0 查看ubi信息
  1. 查看df:df -h
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值