当前位置: 首页 > news >正文

格式化并挂载ubi文件系统过程详解

1、UBI文件系统介绍

(1)UBI文件系统是基于MTD子系统的,内核必须要先支持MTD子系统;
(2)UBI文件系统适用于Nand flash,是可读写的文件系统;

2、内核中使能UBI

2.1、使能UBI设备驱动

Location:                                                                                                                                                                                        │  
  │     -> Device Drivers                                                                                                                                                                              │  
  │       -> Memory Technology Device (MTD) support (MTD [=y])                                                                                                                                         │  
  │         -> Enable UBI - Unsorted block images

在这里插入图片描述

2.1.1、UBI wear-leveling threshold

UBI 系统记录每个擦除块发生擦除操作的次数。此选项表示所有擦除操作次数中,最小值和最大值之间允许的最大间隔。此值默认为4096,对于寿命比较短的 MLC器件,此值应该配置相对小一点,比如256。

2.1.2、MTD devices emulation driver (gluebi)

模拟MTD驱动,选择此选项,当创建一个卷时, UBI 将同时模拟一个 MTD设备。这个功能提供了一个接口,供其它文件系统使用UBI。

2.2、使能UBIFS文件系统

在这里插入图片描述
在这里插入图片描述

必须先使能UBI设备驱动,才能找到UBIFS文件系统选项

3、mount 一个空 UBIFS 文件系统

3.1、 查看当前的mtd分区情况

# cat /proc/mtd
dev: size erasesize name
mtd0: 01000000 00020000 "boot"
mtd1: 00400000 00020000 "kernel"
mtd2: 02000000 00020000 "rootfs"
mtd3: 03200000 00020000 "ubi"

3.2、格式化ubi分区

# ubiformat /dev/mtd3

使用ubiformt命令将mtd3分区格式化;

3.3、绑定UBI到MTD分区

# ubiattach /dev/ubi_ctrl -m 3
UBI: attaching mtd3
UBI: scanning is finished
UBI: attached mtd3 (name "ubi", size 50 MiB)
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
UBI: good PEBs: 400, bad PEBs: 0, corrupted PEBs: 0
UBI: user volume: 0, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter:19/11, WL threshold: 4096, image sequence number: 1841457603
UBI: available PEBs: 356, total reserved PEBs: 44, PEBs reserved for bad PEB handling: 40
UBI: background thread "ubi_bgt1d" started, PID 1212
UBI device number 1, total 400 LEBs (50790400 bytes, 48.4 MiB), available 356 LEBs (45203456
bytes, 43.1 MiB), LEB size 126976 bytes (124.0 KiB)

参数” -m 3”表示使用 mtd3 分区,“ -b n”表示保留n个块用于坏块处理。只有绑定了ubi 到 mtd 分区以后,才能在 /dev/ 下找到 ubi设备“ ubin(n=0、1、2······)”;

3.4、创建 UBI 卷

# ubimkvol /dev/ubi1 -N ubifs -s SIZE

参数“ /dev/ubi1”是上一步骤创建的ubi 设备。
参数“ -N ubifs”表示创建的卷名为“ ubifs”。
参数“ -s SIZE”表示创建的分区大小

3.5、查看创建好的UBI卷

# ubinfo /dev/ubi1
Ubi1
Volumes count: 1
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 400 (50790400 bytes, 48.4 MiB)
Amount of available logical eraseblocks: 356 (47742976 bytes, 43.1 MiB)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 40
Current maximum erase counter value: 20
Minimum input/output unit size: 2048 bytes
Character device major/minor: 249:0
Present volumes: 0

3.6、挂载空UBIFS文件系统

# mount -t ubifs /dev/ubi1_0 /mnt/
UBIFS (ubi1:0): default file-system created
UBIFS (ubi1:0): background thread "ubifs_bgt1_0" started, PID 1225
UBIFS (ubi1:0): UBIFS: mounted UBI device 1, volume 0, name "ubifs"
UBIFS (ubi1:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048
bytes
UBIFS (ubi1:0): FS size: 43933696 bytes (41 MiB, 346 LEBs), journal size 2158592 bytes (2 MiB,
17 LEBs)
UBIFS (ubi1:0): reserved for root: 2075096 bytes (2026 KiB)
UBIFS (ubi1:0): media format: w5/r0 (latest is w5/r0), UUID
D2E4E92D-2F7D-412F-95E5-25CBECF172EB, small LPT model

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 自由概率(Free probability)
  • 大数据之HBase基础
  • Python爬虫教你爬取视频信息
  • 基于微信小程序的火锅店点餐系统小程序
  • 一文带你吃透红黑树---红黑树如此简单
  • 经济的1000+篇文章总结
  • 【数据结构】基础:AVL树(平衡二叉树)
  • 【C++11】lambda表达式、包装器、bind 与 placeholders
  • 【深度学习基础6】自编码器及其变体
  • 数学知识-约数
  • 【Python模块】psutil
  • 配置安全的linux-apache服务器(5)
  • 【栈】数据结构栈的实现
  • BPMP 需求
  • 软件测试(概念Ⅰ) · 软件测试的基本概念 · 什么是需求 · 测试用例的概念 · 软件错误(bug)的概念
  • 理论一:当谈论面向对象的时候,我们到底在谈论什么?
  • 带你三分种了解网络用语之网络层、传输层
  • 元宵节:css画灯笼
  • 异步编程实践
  • Go XORM学习
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉