You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从/proc/self/mountinfo文件确定挂载的真实来源?

如何从/proc/self/mountinfo文件确定挂载的真实来源?

我来给你把这个问题讲明白,其实/proc/self/mountinfo的每一行都有固定的字段逻辑,咱们先拆解清楚字段含义,再对照你给的例子分析就懂啦!

首先,先搞懂mountinfo每行的结构:每一行用空格分隔字段,其中有个特殊的-作为分隔符,把内核内部的挂载信息和文件系统相关的信息分开。具体字段(从左到右):

  • 第一个是挂载ID,用来唯一标识这个挂载
  • 第二个是父挂载ID,指向它的上级挂载
  • 第三个是设备ID(格式是主设备号:次设备号)
  • 第四个是文件系统内的根路径:也就是这个挂载在它所属的文件系统里的起始路径
  • 第五个是主机上的挂载点:就是咱们在系统里看到的挂载路径
  • 第六个是挂载选项(比如rw、nosuid这些)
  • 第七个是共享挂载的相关信息
  • 然后是分隔符-
  • 第九个是文件系统类型(比如devtmpfs、ext4)
  • 第十个是挂载源:可以是设备路径、虚拟文件系统名,或者其他挂载对象
  • 第十一个及以后是超级块选项

现在回到你给的例子:

先看第一行:

19 60 0:5 / /dev rw,nosuid shared:2 - devtmpfs devtmpfs rw,seclabel,size=1930460k,nr_inodes=482615,mode=755

这里第四个字段是/,说明是把整个devtmpfs文件系统挂载到/dev,所以挂载源就是devtmpfs本身(第十个字段),这和你理解的一致。

再看第二行:

119 74 0:5 /sda1 /home/abc/def rw,nosuid shared:2 - devtmpfs devtmpfs rw,seclabel,size=1930460k,nr_inodes=482615,mode=755

重点看第四个字段/sda1——这是在devtmpfs文件系统内部的路径,而devtmpfs的挂载点是/dev,所以这个路径对应到主机上就是/dev/sda1。这一行的意思是:把devtmpfs里的/sda1(也就是实际的磁盘分区/dev/sda1)挂载到/home/abc/def。

所以结论是:/home/abc/def的真实挂载源是/dev/sda1,而不是/dev。

最后给你总结个判断小技巧:

  • 如果第四个字段是/,说明是挂载整个文件系统,这时直接看分隔符后的挂载源(第十个字段)就行;
  • 如果第四个字段不是/,那真实挂载源就是「这个挂载所属的父文件系统的挂载点」加上「第四个字段」,也就是把文件系统内部的路径映射到主机的实际路径。

备注:内容来源于stack exchange,提问作者codego123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:15:30