導航:首頁 > 程序命令 > 查看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
大牛盒子插件文件夾 瀏覽:13
用友t3如何遠程連接伺服器 瀏覽:744
保時捷行車記錄儀需要什麼app 瀏覽:717
文件伺服器中的DFS全名是什麼 瀏覽:461
365小說app現在叫什麼 瀏覽:55
海貝音樂app的獨佔usb輸出是什麼 瀏覽:400
宏觀經濟學高鴻業pdf 瀏覽:297
我的榮耀9x有方舟編譯器嗎 瀏覽:974
linux父子進程通信 瀏覽:889
程序員為什麼總是用手機 瀏覽:309
安卓9程序怎麼用 瀏覽:846
如何恢復編譯 瀏覽:853
mybatispdf 瀏覽:880
plc使用的是單片機嗎 瀏覽:816
如何讓安卓平板音量上限 瀏覽:236
代理伺服器請求超時如何設置 瀏覽:117
pdf批量蓋章 瀏覽:780
珠江寬頻網關伺服器地址 瀏覽:711
程序員練打字網站 瀏覽:579