Linux确定分区所对应的设备文件路径一、简介
本文主要介绍,在Linux系统下,怎样确定各个分区所对应的设备文件路径
二、问题引入
在开发与测试过程中,常常会须要我们对指定分区进行操作,举几个具体的事例:
dd if=/dev/zero of=/dev/mmcblk0p8 bs=10M
但好多时侯,真正困惑我们的,是怎样确定分区对应的节点呢?我如何晓得应用分区(AppLocal)对应的是/dev/mmcblk0p8还是/dev/mmcblk0p10呢?
具体的内容将在正文中进行讲解。
三、正文3.1获得分区表
首先须要了解的是:设备详尽的分区信息,记录在/proc/cmdline中,以我手中的设备为例:
/usr/local/bin # cat /proc/cmdline
earlyprintk console=ttyS0,115200 rootwait nprofile_irq_duration=on coherent_pool=2M libata.force=1.5 ahci_nvt_ivot.force_gen=1 rootfstype=squashfs ro flashsize=32M chiptype=80 EtherConfig=2 AuthSerial=006E000000 MachineType=0 HardwareVer=0 DevVersion=0 UartConfig=1 blkdevparts=mmcblk0:0x40000@0x40000(fdt),0x100000@0xC0000(uboot+3Logo),4M@0x1C0000(Kernel),16M@21M(Rootfs),128M@41M(AppLocal),800M@169M(AppExt),16M@971M(SysParaCusPara),1M@987M(SysStatus),2048M@988M(data1),-(data2) nvtemmcpart=0x40000@0x40000(fdt),0x100000@0xc0000(uboot+3Logo),0x400000@0x1c0000(linux),0x1000000@0x1500000(rootfs),0x400000@0x2500000(BKSystem),0x8000000@0x2900000(AppLocal),0x32000000@0xaa00000(AppExt),0x1000000@0x3cb00000(SysParaCusPara),0x100000@0x3dc00000(SysStatus),0x80000000@0x3de00000(data1),0x10dd00000@0xbdf00000(data2) root=/dev/mmcblk0p4
/usr/local/bin #
选项blkdevparts记录了详尽的分区界定信息。关于此一部份的解释,详见:嵌入式设备命令行的分区参数解析。
从上文中linux下载,我们晓得:blkdevparts命令行选项,主要用于使用EMMC作为储存介质的嵌入式设备,使系统才能从命令行中获取块设备的分区表。
我们以图形的方法对上述blkdevparts选项进行剖析:
如上,我们就能否清晰得了解各个分区的大小,偏斜,以及名称等信息。我们可以以一种更直观的方法进行展示:
如上所示,不难发觉,各个分区在对应的储存介质(mmcblk0)是根据次序排布的,以上为例,Rootfs的下一个分区是AppLocallinux查看分区,其前一个分区则是Kernel。在明晰这一点后,将便捷我们理解接出来的内容。
3.2以特定分区做为对照,构建分区与节点的映射关系
在对分区表有一个大致的了解后,接出来,就是怎样确定各分区对应的节点。首先,我们在设备上执行df指令,获取c盘空间的占用情况:
Filesystem Size Used Available Use% Mounted on
/dev/root 3.9M 3.9M 0 100% /
devtmpfs 165.2M 0 165.2M 0% /dev
tmpfs 6.0M 224.0K 5.8M 4% /var
/dev/mmcblk0p5 20.5M 20.5M 0 100% /usr/local
/dev/mmcblk0p6 59.4M 59.4M 0 100% /usr/local/app/extend
/dev/mmcblk0p8 1003.0K 13.0K 939.0K 1% /var/mnt/emmc/scare_rw
/dev/mmcblk0p9 2.0G 40.0K 1.9G 0% /var/mnt/emmc/freq_rw
/usr/local/bin #
现今对我们把握到情况进行总结剖析:
已知AppLocal为我们的应用分区,且其挂载路径为/usr/local,系统对应的设备文件路径名为/dev/mmcblk0p5已知AppExt为我们的扩充应用分区,且其挂载路径为/usr/local/app/extend,系统对应的设备文件路径名为/dev/mmcblk0p6从中,我们了解到各分区是根据次序界定的,AppExt坐落AppLocal以后,而Rootfs坐落其前发散:Rootfs对应的设备文件路径改为多少?
通过以上基本的剖析,我们不难推测出,Rootfs对应的分区节点应为/dev/mmcblk0p4linux查看分区,情况是否真是这么呢?在前文我们获取到的cmdline中,存在root=/dev/mmcblk0p4的数组linux认证,而这亦与我们的结论是吻合的。
举一反三,我们即可通过上述方式,推测出各个分区所对应的设备文件路径了。
四、参考与链接linux命令–磁盘命令dd:嵌入式设备命令行的分区参数解析:df命令:五、文档信息作者:Litost_Cheng