ubifs分区挂载及信息查看

转载地址:https://blog.youkuaiyun.com/csdn66_2016/article/details/78265055

ubi挂载操作:

(1)格式化ubi分区
  ubiformat /dev/mtd*   格式化mtdblock*

(2)与ubi建了连接
  ubiattach /dev/ubi_ctrl -m *   mtdblock*与ubi建立连接

(3)创建volume
  ubimkvol /dev/ubi* -s 100MiB -N my_ubi_vol 在ubi*上创建一个volume,名字为my_ubi_vol,大小为100MiB

(4)挂载ubifs
  mount -t ubifs /dev/ubi*_0  /mnt   挂载对应的/dev/ubi*_0,而非/dev/mtd*

(5)卸载ubifs
  umount /mnt

(6)断开ubi连接
  ubidetach -m *

  如果/dev/mtd*是非ubifs分区,则需要如上流程才能正常挂载使用,如果已经格式化为ubifs分区,则只需要ubiattach,即可mount使用。

ubi信息查看:
(1)ls -l /dev/ubi*

# ls -l /dev/ubi*
crw-rw----    1 root     root      235,   0 Jan  1 00:00 /dev/ubi0
crw-rw----    1 root     root      235,   1 Jan  1 00:00 /dev/ubi0_0
crw-rw----    1 root     root      234,   0 Jan  1 00:09 /dev/ubi1
crw-rw----    1 root     root      234,   1 Jan  1 00:09 /dev/ubi1_0
crw-rw----    1 root     root       10,  48 Jan  1  1970 /dev/ubi_ctrl
查看ubi相关的节点,如果有两个ubi分区,fs先挂载,则/dev/ubi0_0为fs,/dev/ubi1_0为data
(2)ls -l /sys/class/ubi/*

# ls -l /sys/class/ubi/*
lrwxrwxrwx    1 root     root             0 Jan  1 00:00 /sys/class/ubi/ubi0 -> ../../devices/virtual/ubi/ubi0
lrwxrwxrwx    1 root     root             0 Jan  1 00:00 /sys/class/ubi/ubi0_0 -> ../../devices/virtual/ubi/ubi0/ubi0_0
lrwxrwxrwx    1 root     root             0 Jan  1 00:09 /sys/class/ubi/ubi1 -> ../../devices/virtual/ubi/ubi1
lrwxrwxrwx    1 root     root             0 Jan  1 00:18 /sys/class/ubi/ubi1_0 -> ../../devices/virtual/ubi/ubi1/ubi1_0
-r--r--r--    1 root     root          4096 Jan  1 00:00 /sys/class/ubi/version
查看ubi节点对应的信息,为link符合链接。
(3)查看/sys/class/ubi/ubi1 信息

# cd /sys/class/ubi/ubi1
# ls
avail_eraseblocks  max_ec             reserved_for_bad   uevent
bad_peb_count      max_vol_count      ro_mode            volumes_count
bgt_enabled        min_io_size        subsystem
dev                mtd_num            total_eraseblocks
eraseblock_size    power              ubi1_0
(4)查看详细的信息

# ls -l
total 0
-r--r--r--    1 root     root          4096 Jan  1 00:09 avail_eraseblocks   可擦除的block数
-r--r--r--    1 root     root          4096 Jan  1 00:09 bad_peb_count       坏的peb计数,底层MTD的物理分区(PEB)和上层逻辑分区(LEB)
-r--r--r--    1 root     root          4096 Jan  1 00:18 bgt_enabled         后台线程使能,bgt: background thread
-r--r--r--    1 root     root          4096 Jan  1 00:09 dev                 主次设备号
-r--r--r--    1 root     root          4096 Jan  1 00:09 eraseblock_size     擦除的块大小
-r--r--r--    1 root     root          4096 Jan  1 00:09 max_ec
-r--r--r--    1 root     root          4096 Jan  1 00:09 max_vol_count       支持的最大的volume数量
-r--r--r--    1 root     root          4096 Jan  1 00:09 min_io_size         最新的io操作大小,即页大小
-r--r--r--    1 root     root          4096 Jan  1 00:09 mtd_num             ubi设备对象的mtd
drwxr-xr-x    2 root     root             0 Jan  1 00:18 power
-r--r--r--    1 root     root          4096 Jan  1 00:09 reserved_for_bad    从bad block修复的数量
-r--r--r--    1 root     root          4096 Jan  1 00:18 ro_mode             只读模式
lrwxrwxrwx    1 root     root             0 Jan  1 00:18 subsystem -> ../../../../class/ubi
-r--r--r--    1 root     root          4096 Jan  1 00:09 total_eraseblocks   总共擦除的block数
drwxr-xr-x    3 root     root             0 Jan  1 00:09 ubi1_0
-rw-r--r--    1 root     root          4096 Jan  1 00:18 uevent              主次设备号对应的变量
-r--r--r--    1 root     root          4096 Jan  1 00:18 volumes_count       已经创建的volume数量
(5)具体内容如下:

# cat avail_eraseblocks
60
# cat bad_peb_count             坏的peb数量
4
# cat bgt_enabled
1
# cat dev                       主次设备号
234:0
# cat eraseblock_size           
126976
# cat max_ec
1
# cat max_vol_count             最大支持128卷
128
# cat min_io_size               page size:2K
2048
# cat mtd_num                   对应的/dev/mtd6
6
# cat reserved_for_bad
76
# cat ro_mode
0
# cat total_eraseblocks
1131
# cat uevent
MAJOR=234
MINOR=0
DEVNAME=ubi1
# cat volumes_count            只有一个卷,即上面创建的 my_ubi_vol
1
(6)我们在/dev/mtd6上面,只新建了一个volume,所以有个对应的ubi1_0
# cd /sys/class/ubi/ubi1/ubi1_0
# ls
alignment       device          subsystem       usable_eb_size
corrupted       name            type
data_bytes      power           uevent
dev             reserved_ebs    upd_marker

# cat name            即为我们创建的 my_ubi_vol
my_ubi_vol
/sys/class/ubi/ubi1/ubi1_0 下面即为 my_ubi_vol的相关信息

(7)常见的volume属性


# ls
alignment       device          subsystem       usable_eb_size
corrupted       name            type
data_bytes      power           uevent
dev             reserved_ebs    upd_marker

# cat data_bytes       my_ubi_vol  大小为120M
125833216
# cat name             名字为my_ubi_vol
my_ubi_vol

--------------------- 
作者:丁香树下丁香花开 
来源:优快云 
原文:https://blog.youkuaiyun.com/csdn66_2016/article/details/78265055 
版权声明:本文为博主原创文章,转载请附上博文链接!

是的,在某些嵌入式Linux环境中,特别是那些使用Memory-Tech Device (MTD) 技术的设备上,如闪存芯片、eMMC等,UBIFS (统一二进制文件系统) 可能需要绑定到特定的MTD分区(Memory Technology Device Partition)。MTP是一种内存管理技术,用于管理和保护非易失性内存资源。 当你在MTD设备上创建或管理UBIFS卷时,通常需要以下几个步骤: 1. **识别MTP分区**:首先确定你的设备中可用的MTP分区。这可以通过`mtd devices`命令查看,每个分区都有一个唯一的名称,例如`nor0`、`spi0.0`等。 2. **分区映射**:如果UBIFS卷要挂在具体的MTP分区,可以使用`mtdmap`工具配置映射关系,例如: ``` mtdmap -o physmap.mtdmap "nor0=ubi0:0" ``` 这里假设`nor0`对应的是UBI容器`ubi0`的第一个块组。 3. **创建或挂载UBIFS**:使用UBIFS的创建工具(如`ubifs-mkfs`),指定要使用的MTP分区作为输入,例如: ``` ubifs-mkfs ubifs /dev/mtdblockX /path/to/volume ``` `X`替换为MTP分区的实际编号,`/path/to/volume`是你要创建的UBIFS卷的位置。 4. **挂载UBIFS**:最后,按照常规流程挂载UBIFS到Linux内核,但需要指定基于MTP的设备名称: ``` mount -t ubifs volume_name /mnt/ubifs_volume ``` 总之,是否需要将UBIFS绑定到MTD取决于你的硬件配置和具体的环境需求。如果没有使用MTD,那么可以直接在常规的块设备上创建和挂载UBIFS卷。记得在操作前查阅设备文档了解详细信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值