MTD设备学习,挂载,读写,分区查看 |
您所在的位置:网站首页 › 怎么看磁盘挂载时间 › MTD设备学习,挂载,读写,分区查看 |
MTD
Memory Technology Device,内存技术设备 /dev/mtdN字符设备,支持ioctl,MEMGETINFO,MEMERASE等,mtd-utils(用于进行mtd操作的工具集,包含flash_eraseall等工具)就是以此实现的。mtd字符设备主设备号90。 /dev/mtdblockN块设备,可以在块设备上创建文件系统,不提供ioctl方法,无法使用nandwrite,flash_eraseall,flash_erase等工具进行操作。mtd块设备主设备号31。只读块设备。貌似无法通过dd来写入。 实际上mtdN和mtdblockN是一个MTD分区,只是提供给上层的视图不同,因为mount、umount命令只能挂在块设备(有文件系统),mtd-utils工具(flash_erase等)只能通过字符设备来交互。 常用命令 - 挂载信息 mount类似/proc/mounts,下面有 rootfs on / type rootfs (rw) /dev/root on /mnt/.cramfs type cramfs (ro,relatime) /dev/mmcblk1p1 on / type ext2 (rw,noatime,errors=continue) proc on /proc type proc (rw,relatime) ramfs on /tmp type ramfs (rw,relatime) sysfs on /sys type sysfs (rw,relatime) usbfs on /proc/bus/usb type usbfs (rw,relatime) mdev on /dev type tmpfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) /dev/mmcblk1p3 on /mnt/mmcblk1p3 type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) /proc/partitions查看mtd块设备的大小,一个block是1KB:cat /proc/partitions major minor #blocks name 31 0 4608 mtdblock0 31 1 2176 mtdblock1 31 2 64 mtdblock2 31 3 64 mtdblock3 31 4 64 mtdblock4 31 5 512 mtdblock5 31 6 64 mtdblock6 31 7 64 mtdblock7 31 8 8192 mtdblock8 31 9 64 mtdblock9 31 10 320 mtdblock10 179 0 3866624 mmcblk1 179 1 250480 mmcblk1p1 179 2 250488 mmcblk1p2 179 3 1000440 mmcblk1p3 179 4 1953504 mmcblk1p4 /etc/fstab预先写好的挂载文件,开机后按自动该文件挂载目录。 # none /proc proc defaults 0 0 none /dev/pts devpts defaults 0 0 none /sys sysfs defaults 0 0 none /dev/shm tmpfs defaults 0 0 none /proc/bus/usb usbfs defaults 0 0 # these are for read-only root: none /tmp tmpfs defaults,mode=1777 0 0 none /var/run tmpfs defaults 0 0 /dev/mtdblock3 /mnt/rootdata cramfs defaults 0 0 # writable flash mtd:spi_jffs2 /mnt/rwflash jffs2 defaults 0 0 mtd:spi_reserve /mnt/mpflash jffs2 defaults 0 0 # writable overlays /mnt/rwflash/config /etc/config none defaults,bind 0 0 /mnt/rwflash/mail /etc/mail none defaults,bind 0 0 /mnt/rwflash/snmp /etc/snmp none defaults,bind 0 0 none /root tmpfs defaults,mode=1777 0 0 none /sys/kernel/debug debugfs defaults 0 0 pvgnas02:/users /home nfs noauto,tcp,soft,intr,nolock 0 0 /proc/mtd查看mtd设备分区情况:cat /proc/mtd dev: size erasesize name mtd0: 00040000 00010000 "spi_boot" mtd1: 001c0000 00010000 "spi_kernel" mtd2: 01100000 00010000 "spi_root" mtd3: 00b80000 00010000 "spi_rootdata" mtd4: 00090000 00010000 "spi_jffs2" mtd5: 000d0000 00010000 "spi_reserve" mtd6: 00020000 00010000 "spi_bootenv" /proc/mounts查看当前分区的挂载情况 rootfs / rootfs rw 0 0 /dev/root / cramfs ro,relatime 0 0 none /proc proc rw,relatime 0 0 none /dev tmpfs rw,relatime 0 0 /tmpfs /mnt/rwflash tmpfs rw,relatime 0 0 /dev/mtdblock4 /mnt/rwflashphy jffs2 rw,relatime 0 0 none /dev/pts devpts rw,relatime,mode=600 0 0 none /sys sysfs rw,relatime 0 0 none /dev/shm tmpfs rw,relatime 0 0 none /proc/bus/usb usbfs rw,relatime 0 0 none /tmp tmpfs rw,relatime,mode=1777 0 0 none /var/run tmpfs rw,relatime 0 0 /dev/mtdblock3 /mnt/rootdata cramfs ro,relatime 0 0 mtd:spi_reserve /mnt/mpflash jffs2 rw,relatime 0 0 /tmpfs /etc/config tmpfs rw,relatime 0 0 /tmpfs /etc/mail tmpfs rw,relatime 0 0 /tmpfs /etc/snmp tmpfs rw,relatime 0 0 none /root tmpfs rw,relatime,mode=1777 0 0 none /sys/kernel/debug debugfs rw,relatime 0 0 df -h -T查看已经挂载的分区和文件系统类型 Filesystem Size Used Available Use% Mounted on /dev/root 22.8M 22.8M 0 100% / /dev/mtdblock4 576.0K 288.0K 288.0K 50% /mnt/rwflashphy /dev/mtdblock3 11.2M 11.2M 0 100% /mnt/rootdata mtd:spi_reserve 832.0K 244.0K 588.0K 29% /mnt/mpflash mountpoint判断当前目录是否为挂载点 选项: -q:不打印任何信息; -d:打印文件系统的主设备号和次设备号; -x:打印块数设备的主设备号和次设备号。 fdick -l显示出所有挂载和未挂载的分区,但不显示文件系统类型。 Disk /dev/mtdblock0: 4 MB, 4718592 bytes 255 heads, 63 sectors/track, 0 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/mtdblock0 doesn't contain a valid partition table Disk /dev/mtdblock10: 0 MB, 327680 bytes 255 heads, 63 sectors/track, 0 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/mtdblock10 doesn't contain a valid partition table parted -l查看未挂载的文件系统类型,以及哪些分区尚未格式化。 lsblk -f查看未挂载的文件系统类型。 常用命令 - MTD操作 flash_erase用于清除设备中的块 flash_erase MTD-device [start] [cnt (# erase blocks)] [lock] flash_eraseall擦除指定设备上的所有块 Usage: flash_eraseall [OPTION] MTD_DEVICE Erases all of the specified MTD device. -j, --jffs2 format the device for jffs2 -q, --quiet don't display progress messages --silent same as --quiet --help display this help and exit --version output version information and exit flashcp向指定的设备写文件,与dd命令不同,对坏块是安全的,提供了许多错误检测属性 BusyBox v1.19.3 (2017-04-19 10:54:20 CST) multi-call binary. Usage: flashcp -v FILE MTD_DEVICE Copy an image to MTD device -v Verbose nandwrite用于把文件写入nand flash nandwrite [OPTION] MTD_DEVICE [INPUTFILE|-] 读取与写入 读取通过cat读取(通过网络发送走了):cat /dev/mtdblock2 | nc 192.156.13.235 5555 通过dd读取(未验证):dd if=/dev/mtdblock2 | nc 192.168.1.30 5555 写入写入命令:flashcp -v /var/run/viewer/media/folder/sda4/mtd2new /dev/mtd2 2>&1 效果: Erasing block: 148/148 (100%) Writing kb: 9432/9440 (99%) Verifying kb: 9432/9440 (99%) 参考链接[Android] 查看MTD,EMMC,MMC三种设备的分区 How To Use MTD |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |