如果我这样做,我就可以看到里面mount -o bind /my/dir /mnt/tmp
的内容。但是,如果我输入,我会得到以下输出:/my/dir
/mnt/temp
cat /proc/mounts
/dev/sda7 /my ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/sda7 /mnt/tmp ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
正如您所看到的,我知道这sda7
是底层设备,但我不知道该文件系统中的哪个目录是“挂载绑定”的/mnt/temp
。
我怎么知道不输入mount
它不依赖于内核而是依赖于/etc/mtab
?我想从内核本身获取信息。
编辑:如果该解决方案也适用于绑定的目录,那就太好了在安装时从/etc/fstab
这种行:/my/dir /mnt/temp none bind 0 0
答案1
您可以从以下位置获取此信息/proc/self/mountinfo
:
# mkdir -p /my/dir
# mkdir /mnt/temp
# mount -o bind /my/dir /mnt/temp
# grep temp /proc/self/mountinfo
26 22 202:1 /my/dir /mnt/temp rw,noatime - ext3 /dev/xvda1 rw,errors=continue,user_xattr,acl,barrier=0,data=ordered
这是在内核中实现此功能的补丁:https://lkml.org/lkml/2008/1/29/136
您还可以使用以下findmnt
命令:
# findmnt /mnt/temp
TARGET SOURCE FSTYPE OPTIONS
/mnt/temp /dev/xvda1[/my/dir] ext3 rw,noatime,errors=continue,user_xattr,acl,barrier=0,data=ordered
编辑:我还验证了此方法在通过安装时有效/etc/fstab
。
# tail -1 /etc/fstab
/my/dir /mnt/temp none bind 0 0