导航:首页 > 程序命令 > 查看mtd分区内容命令

查看mtd分区内容命令

发布时间:2022-04-27 07:00:32

‘壹’ 斐讯K3如何备份MTD分区

1.Telnet 路由器IP 进入 Shell ,然后插入 U 盘或其他存储设备
2.键入 mount 查看 U 盘挂载路径(例如:/tmp/share/sda1)
3.cat /proc/mtd 查看分区信息
4.cat /dev/mtd0 > /tmp/share/sda1/mtd0.img (这个指令的意思是备份 mtd0 分区到 /tmp/share/sda1/ 目录并保存为 mtd0.img,依次类推)

‘贰’ EMMC格式的分区信息怎么查看

逢贴必顶,基本的礼貌

‘叁’ android的mount命令怎么用

如果你是在电脑上面使用adb命令的话 在插入usb之前还是得调成开发模式。然后在dos窗口(如果你连电脑怎么进入dos窗口都不知道那么你别问我)输入adb devices 当然了,在电脑上连接手机需要先下载并安装adb命令,这个你可以用手机PC助手安装。 为了方便的adb命令的使用的话你还得下载adb驱动。关于adb驱动以后再跟大家讲。
查看一下是否获得设备信息并且是否连接上
当确认连接上了之后
使用
adb shell cat /proc/mtd 可以查看分区
或者你可以先输入 adb shell 进入手机的shell交互的终端界面
然后输入 cat/proc/mtd命令查看你的手机分区的挂载情况

然后这个时候就开始挂载分区了,比如我要重新挂载system分区为可读写

就输入命令: mount -o remount,rw /dev/block/mtdblock3 /system

这个命令的意思是 remount是重新挂载的意思。r表示read。w表示write就是读写的意思。 然后后面跟着的是分区的路径 路径为/dev/block/mtdblock3 再就是要挂载在根目录下面 并且命名为system

好了。现在打开你的re文件管理器。尽情的操纵你的system分区(文件夹)吧

‘肆’ mtd 分区 文件系统 怎么看

1.在刷rom前分,就像你要装电脑系统要分区一样。 2.可以,但是没有意义,MTD是把手机内置分区给重新分配,HERO的系统结构是这样的。/system占170MB,/cache占130MB,而留给用户使用的/data却只有160MB。MTD就是把/SYS及/chche的没利用空间分配到用户的/data中。sys不一定。可以不动,cache一般情况下的使用在20M以内,因此,你懂得。SWAP及EX3是把手机DATA分区映射到存储卡上,这个技术在两年前还行,现在有MTD了,就可以淘汰了。 3.别的问题就不是问题了,你现在要做的就是做MTD,放弃SWAP. 不要迷信JS的刷机,自己动手丰衣足食。 有什么情况可以问我,一起研究哈。

‘伍’ linux内核怎么查看mtd的block命令

mtd是字符设备,mtdblock是块设备 可以看看dd命令的实现,在busybox里有 补充: /dev/mtd/* 或者 /dev/mtd* 这两种表示方式一般表示的是字符设备/dev/mtdblock/* 或者 /dev/mtdblock* 这两种是块设备的表示方式mount 的一般都是块设备貌似dd只对...

‘陆’ 安卓如何知道自己mtd分区还是emmc分区

你的可用的刷机包那签名文件夹里的刷机脚本那里有。updater-script文件。例如format("ext4",
"EMMC",
"/system",
"0");是EMMC分区的,format("yaffs2",
"MTD",
"system",
"0")是MTD分区的。

‘柒’ 如何通过mtd-utils命令向nor flash写入文件系统

使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd*
#cat /proc/mtd
dev: size erasesize name
mtd0: 00c00000 00020000 "ROOTFS"
mtd1: 00200000 00020000 "BOOTLOADER"
mtd2: 00200000 00020000 "KERNEL"
mtd3: 03200000 00020000 "NAND ROOTFS partition"
mtd4: 04b00000 00020000 "NAND DATAFS partition"
为了更详细了解分区信息用mtd_debug命令
#mtd_debug info /dev/mtdX (不能使用mtdblockX, mtdblockX 只是提供用来 mount 而已)
mtd.type = MTD_NORFLASH
mtd.flags =
mtd.size = 12582912 (12M)
mtd.erasesize = 131072 (128K)
mtd.oobblock = 1
mtd.oobsize = 0
mtd.ecctype = (unknown ECC type - new MTD API maybe?)
regions = 0

命令:flash_erase
作用:擦出指定范围内flash的内容,如果不指定,默认擦出起始位置的第一块,使相应flash变为全1
用法:
flash_erase MTD-device [start] [cnt (# erase blocks)] [lock]
MTD-device:待擦出的分区,如/dev/mtd0
start:起始位置设置,这里必须设置为0x20000(128K)的整数倍
cnt: 从start开始计算,要擦出的块数
lock: 写保护
eg: ./flash_erase /dev/mtd0 0x40000 5 //擦出mtd0分区上从0x40000开始的5块数据 ,128K/块

命令:flash_eraseall
作用:擦出整个分区的数据,同时也会作坏块检测
用法:
flash_eraseall [OPTION] MTD_DEVICE
-q, --quiet 不显示打印信息
-j, --jffs2 一jffs2 格式化分区
eg: ./flash_eraseall -j /dev/mtd0

命令:flashcp
作用:数据到 flash 中
用法:
usage: flashcp [ -v | --verbose ] <filename> <device>
flashcp -h | --help
filename:待写入的数据
device: 写入的分区,如/dev/mtd0
eg:
filename制作:mkfs.jffs2 -e 0x20000 -d cq8401 -o cq8401.img -n //这里的-e 0x20000 必须更你芯片的erasesize 相等

./flashcp cq8401.img /dev/mtd0 // cq8401.img文件系统到 /dev/mtd0分区中
当然这个命令的功能跟 dd if=/tmp/fs.img of=/dev/mtd0差不多

命令:nandwrite
作用:向nand flash中写数据
用法:
nandwrite [OPTION] MTD_DEVICE INPUTFILE
-a, --autoplace Use auto oob layout
-j, --jffs2 force jffs2 oob layout (legacy support)
-y, --yaffs force yaffs oob layout (legacy support)
-f, --forcelegacy force legacy support on autoplacement enabled mtd device
-n, --noecc write without ecc
-o, --oob image contains oob data
-s addr, --start=addr set start address (default is 0)
-p, --pad pad to page size
-b, --blockalign=1|2|4 set multiple of eraseblocks to align to
-q, --quiet don't display progress messages
--help display this help and exit
--version output version information and exit

eg: ./nandwrite -p /dev/mtd0 /tmp/rootfs.jffs2

命令:nandmp
作用:mp出nand flash一些信息,如:block size,erasesize,oobblock 大小,oob data ,page data等;同时也会作坏块检测
用法:
nandmp [OPTIONS] MTD-device
--help display this help and exit
--version output version information and exit
-f file --file=file mp to file
-i --ignoreerrors ignore errors
-l length --length=length length
-o --omitoob omit oob data
-b --omitbad omit bad blocks from the mp
-p --prettyprint print nice (hexmp)
-s addr --startaddress=addr start address
eg:./nandmp -p -f nandinfo.txt /dev/mtd0 //mp出nand flash /dev/mtd0数据并保存到 nandinfo.txt

命令:mtd_debug
作用: 对mtd 调试作用
用法:
usage: mtd_debug info <device>
mtd_debug read <device> <offset> <len> <dest-filename>
mtd_debug write <device> <offset> <len> <source-filename>
mtd_debug erase <device> <offset> <len>
eg:
#./mtd_debug info /dev/mtd0 // 输出/dev/mtd0上的一些信息,这里必须用mtdx
#./mtd_debug erase /dev/mtd0 0x0 0x40000 // 擦出/dev/mtd0 分区上 从0x0开始的 , 128K*2 大小的数据
#./mtd_debug write /dev/mtdblock0 ox0 0x360810 cq8401.img //向mtdblock0分区,写入 3.6M 大小的文件系统cq8401.img,这里最好用mtdblockx
#./mtd_debug read /dev/mtdblock0 ox0 0x360810 read.img //从mtdblock0中读出 3.6M 数据保存到read.img
# cmp -l cq8401.img read.img // 验证write to flash 和 read from flash 中的数据是否一致;也可以使用diff命令来比较
另外针对nand flash,mtd_debug这个工具来测试mtd驱动也不是很好,用nandwrite和nandmp这两个工具或许更好点。然后可以用cmp这个命令来比较一下nandmp出来的数据和nandwrite写入的数据是否一致。

命令:ftl_format
解释:In order to use one of conventional file systems (Ext2, ext3, XFS, JFS, FAT) over an MTD device, you need a software layer which emulates a block device over the MTD device. These layers are often called Flash Translation Layers (FTLs).

例一:如何测试nor flash 驱动
step1:
#./mtd_debug info /dev/mtd0 // 输出/dev/mtd0上的一些信息,这里必须用mtdx
step2:
#./mtd_debug erase /dev/mtd0 0x0 0x40000 // 擦出/dev/mtd0 分区上 从0x0开始的 , 128K*2 大小的数据
step3:
#./mtd_debug write /dev/mtdblock0 ox0 0x360810 cq8401.img //向mtdblock0分区,写入 3.6M 大小的文件系统cq8401.img,这里最好用mtdblockx
step4:
#./mtd_debug read /dev/mtdblock0 ox0 0x360810 read.img //从mtdblock0中读出 3.6M 数据保存到read.img,当然这里的长度应该相等
step5:
# cmp -l cq8401.img read.img // 验证write to flash 和 read from flash 中的数据是否一致;也可以使用diff命令来比较

‘捌’ 求助大大们怎么查看emmc分区中的分区信息拜托了各位 谢谢

看官方版的刷机脚本 查看原帖>>

‘玖’ rootfs所在mtd分区能再mount吗

1.内核配置
在make menuconfig中选中:

Device Drivers ---> Memory Technology Device (MTD) support ---> Command line partition table parsing
Device Drivers → Memory Technology Device (MTD) support →Enable UBI - Unsorted block images
File systems → Miscellaneous filesystems→UBIFS file system support
我是通过uboot的内核命令行给MTD层传递MTD分区信息,在内核中无需进行mtd分区配置,只需修改uboot源码及环境变量参数即可,但要确保源码中分区信息和环境变量的分区信息一致

2.uboot源码修改
在uboot源码目录中,include/conifgs/mx6<custom>.h文件(mx6<custom>.h为自定义板级文件的头文件)中找到:
#define CONFIG_MFG_NAND_PARTITION

修改为"mtdparts=gpmi-nand:8m(boot),2m(env),8m(kernel),1m(dtb),-(rootfs)"

其中gpmi-nand为mtd-id,要与平台flash的mtd-id一致才行,后面为我的分区,仅供参考

我的mx6<custom>.h文件还包含了include/configs/mx6sabre_common.h文件,在其中找到:
#define CONFIG_EXTRA_ENV_SETTINGS
将其修改为如下内容:
#define CONFIG_EXTRA_ENV_SETTINGS \
CONFIG_MFG_ENV_SETTINGS \
"fdt_addr=0x18000000\0" \
"fdt_high=0xffffffff\0" \
"bootargs=console=" CONFIG_CONSOLE_DEV ",115200 ubi.mtd=4 " \
"root=ubi0:rootfs rootfstype=ubifs " \
"mtdparts=gpmi-nand:8m(boot),2m(env),8m(kernel),1m(dtb),-(rootfs) "\
CONFIG_SYS_VIDEO "\0" \
"bootcmd=nand read ${loadaddr} 0xA00000 0x800000;"\
"nand read ${fdt_addr} 0x1200000 0x100000;"\
"bootz ${loadaddr} - ${fdt_addr}\0"

主要是对bootargs进行配置:
由于mtd0~4依次为boot,env,kernel,dtb和rootfs,因此ubi.mtd=4(这是rootfs的mtd分区号);
root=ubi0:rootfs中,rootfs为ubi0分区的分区名,后面ubi分区时会进行命名,两者保持一致即可;
rootfstype文件系统类型为ubifs;
mtdparts这个应该和CONFIG_MFG_NAND_PARTITION一致

3.mfgtool烧写工具修改
mfgtool主要修改cfg.ini配置文件和uxl2.xml文件,具体语法可以参考官方文档

cfg.ini文件如下:
[profiles]
chip = Linux

[platform]
board = SabreSD

[LIST]
name = Custom-NAND

[variable]
board = Custom
part_uboot = 0
part_kernel = 1
part_dtb = 2
part_rootfs = 3
其中Custom为自己定义的目标板名称,part_*为各个mtd分区号

uxl2.xml文件应该给出了Nand烧写的demo,只需在它的基础上进行修改即可:
将LIST name 改成Custom-NAND
BootStrap部分不赘述了;
uboot和kernel烧写部分沿用demo,只需修改烧写文件名及mtd分区名即可,也省略了。。
重点分析一下rootfs的ubi分区及烧写:
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd%part_rootfs% 0 0">Erasing rootfs partition</CMD>
<CMD state="Updater" type="push" body="$ ubiformat /dev/mtd%part_rootfs%"/>
<CMD state="Updater" type="push" body="$ ubiattach /dev/ubi_ctrl -m %part_rootfs%">Attaching UBI partition</CMD>
<CMD state="Updater" type="push" body="$ ubimkvol /dev/ubi0 -Nrootfs -m"/>
<CMD state="Updater" type="push" body="$ mkdir -p /mnt/mtd%part_rootfs%"/>
<CMD state="Updater" type="push" body="$ mount -t ubifs ubi0:rootfs /mnt/mtd%part_rootfs%"/>
<CMD state="Updater" type="push" body="pipe tar -jxv -C /mnt/mtd%part_rootfs%" file="files/Custom-imx6q.rootfs.tar.bz2">Sending and writting rootfs</CMD>
<CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>
<CMD state="Updater" type="push" body="$ umount /mnt/mtd%part_rootfs%">Unmounting rootfs partition</CMD>

<CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>
以上为rootfs的分区及烧写,下面说明一下ubi工具的使用:
ubiformat /dev/mtdN是对mtd分区格式化
ubiattach是对指定mtd分区进行attach,-m 后加上分区号即可,这会生成/dev/ubi0的设备文件,若再进行attach,则按顺序生成/dev/ubi1, /dev/ubi2等等。。。

ubimkvol是在指定的/dev/ubiN上进行ubi分区,即make volume,-N后为分区名,此处指定为rootfs,与上文中bootargs中指定的ubi0:rootfs要保持一致,-m 为指定大小为max(ubiN全部分区大小),也可以使用 -s 500MiB来指定你所需要的大小(单位是MiB或KiB),如果空间足够,可以再ubiN上进行多个volume的分区,访问时只需按照分区名挂载即可
mount -t ubifs ubi0:rootfs /mnt/... 就是按照ubi的分区名进行挂载ubi分区

ubi分区总结:

ubiN分区中,N对应某一个mtd分区,需要attach来动态的再/dev下生成,在这个mtd分区基础上,还能使用ubimkvol按照分区名再次进行多个ubi的volume分区,访问时按照ubiN:name的格式进行挂载即可

注意:
在mtd分区上进行ubi分区后,用ubinfo /dev/ubiN命令会发现实际的ubi分区大小会比mtd分区小一些,这是因为ubi的存储管理是将其逻辑擦除块(LEB)映射到物理擦除块(PEB),在这个过程中需要使用一部分存储空间来进行管理,所以实际我们使用的存储空间会比mtd的大小要小一些。
此外,若mtd分区太小,将可能没有足够空间来进行ubi分区,本人经过尝试,40M的mtd空间可以提供约17M的ubi分区,然而20M的mtd空间则无法进行ubi分区(ubinfo查看会提示无可提供的逻辑擦除块)

‘拾’ 查看手机分区输入cat\proc\mtd什么情况

试试 cat /proc/emmc

阅读全文

与查看mtd分区内容命令相关的资料

热点内容
解压机压什么不烂 浏览:370
大牛盒子插件文件夹 浏览:12
用友t3如何远程连接服务器 浏览:741
保时捷行车记录仪需要什么app 浏览:715
文件服务器中的DFS全名是什么 浏览:460
365小说app现在叫什么 浏览:54
海贝音乐app的独占usb输出是什么 浏览:400
宏观经济学高鸿业pdf 浏览:296
我的荣耀9x有方舟编译器吗 浏览:974
linux父子进程通信 浏览:889
程序员为什么总是用手机 浏览:309
安卓9程序怎么用 浏览:846
如何恢复编译 浏览:851
mybatispdf 浏览:880
plc使用的是单片机吗 浏览:814
如何让安卓平板音量上限 浏览:236
代理服务器请求超时如何设置 浏览:117
pdf批量盖章 浏览:780
珠江宽频网关服务器地址 浏览:711
程序员练打字网站 浏览:578