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

如何查找挂载设备源的绝对路径及从/proc/self/mountinfo文件获取挂载完整路径

如何查找挂载设备源的绝对路径及从/proc/self/mountinfo文件获取挂载完整路径

嘿,这个问题我刚好折腾过,/proc/self/mountinfo绝对是Linux系统里找挂载信息的利器——内核直接维护的文件,信息准得很,不像有些用户空间的文件可能会有延迟或者被篡改。要从这里拿到挂载点的绝对路径,或者挂载源的完整路径,其实只要搞懂它的字段结构就行,咱们一步步来:

先搞懂/proc/self/mountinfo的关键字段

你先执行cat /proc/self/mountinfo看看内容,每一行用空格分隔成多个字段,其中咱们最关心的几个是:

  • 第4列:挂载点的绝对路径,这就是你要找的“挂载完整路径”
  • 第5列:挂载源的根路径(如果是绑定挂载,这就是源目录的绝对路径)
  • 最后一列(用$NF表示):挂载源的设备名/文件系统源(比如/dev/sda1、tmpfs或者远程共享路径)

场景1:获取挂载点的绝对路径

直接提取第4列就行,用awk命令最方便:

  • 提取所有挂载点的绝对路径:
    awk '{print $4}' /proc/self/mountinfo
    
  • 筛选特定挂载源对应的挂载点(比如找/dev/sda1挂载到哪了):
    awk '$NF=="/dev/sda1" {print $4}' /proc/self/mountinfo
    

场景2:获取挂载源的绝对路径

分两种情况:

  1. 普通设备挂载:挂载源就是设备文件(比如/dev/sda1),直接取最后一列:
    awk '{print $NF}' /proc/self/mountinfo
    
  2. 绑定挂载(比如把A目录挂载到B目录):源目录的绝对路径在第5列,执行这个就能拿到:
    awk '{print $5}' /proc/self/mountinfo
    

举个实际例子

假设/proc/self/mountinfo里有这么两行:

14 1 8:1 / /root rw,noatime shared:1 - ext4 /dev/sda1 rw,errors=remount-ro
25 14 8:1 /var/log /tmp/log rw,noatime shared:2 - ext4 /dev/sda1 rw,errors=remount-ro
  • 第一行:挂载点绝对路径是/root,挂载源设备是/dev/sda1
  • 第二行:这是绑定挂载,挂载点是/tmp/log,源目录的绝对路径是/var/log

小技巧:同时查看挂载点和对应源

想一次性看清楚挂载点和它的源?用这个命令:

awk '{print "挂载点:"$4 " | 挂载源:" $NF}' /proc/self/mountinfo

备注:内容来源于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