更新,我重新提出这个问题,因为findmnt
这不是答案。
基本上,OP的总结是,从2.25.2版本开始,mount 不再显示其源路径:
$ mkdir -v /export/crash
mkdir: created directory '/export/crash'
$ mount -v --bind /export/crash /var/crash
mount: /export/crash bound on /var/crash.
$ mount | grep crash
/dev/sdb2 on /var/crash type ext3 (rw,noatime,nodiratime,data=ordered)
在 mount v2.25.2 之前,它用于报告挂载源:
$ mount | grep crash
/export/crash on /var/crash type ext3 (rw,noatime,nodiratime,data=ordered)
这对我来说非常不方便,因为
- 我以前可以做到
umount mount_source
,但现在我只能做到umount mount_target
- 我将来自某个源的挂载绑定为只读,并且我有一个脚本可以打开和关闭这些挂载的读写功能。但是使用新的挂载 (v2.25.2+),我不再能够这样做。
这findmnt
并不是我上述问题的答案:
$ findmnt | grep crash
└─/var/crash /dev/sdb2[/crash] ext3 rw,noatime,nodiratime,data=ordered
即,它没有显示/var/crash
来自/export/crash
任何一个。(注意,如果您使用 bind mount from/tmp/crash
或类似方式进行测试,您将/tmp/crash
在源代码中看到,但我需要查看该/export
部分,即我的挂载点)。
请帮忙。
==以下是原文作者==:
绑定挂载的语法一直是
mount --bind olddir newdir
mount
但是,我注意到Ubuntu 14.10 Utopic 和 Ubuntu 15.04 Vivid 之间的绑定挂载报告方式存在差异,即挂载 v2.25.1 和挂载 v2.25.2。
在 Ubuntu 14.10 Utopic 中,mount
绑定挂载报告如下:
$ mount | grep www
/my/path/to/www on /var/www type none (rw,bind)
$ mount -V
mount from util-linux 2.25.1 (libmount 2.25.0: selinux, assert, debug)
但是在Ubuntu 15.04 Vivid中它是这样的:
$ mount | grep www
/dev/sda11 on /var/www type ext3 (rw,noatime,nodiratime,data=ordered)
$ mount -V
mount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)
即,报告中缺少绑定挂载源路径mount
。对于这两种情况,我都使用与上述完全相同的绑定挂载语法。
那么,如何mount
在 Ubuntu 15.04 Vivid ( mount v2.25.2 ) 中显示绑定挂载源路径?
答案1
你可以做的是 grep/proc/self/mountinfo:
$ less /proc/self/mountinfo | grep /my/mount
221 84 8:3 /bind/source /my/mount rw,relatime shared:32 - ext4 /dev/sda3 rw,data=ordered
答案2
您考虑过使用吗findmnt
?
mount
将其信息存储在 /proc/mounts (或 /proc/self/mounts)中,该文件与 /etc/mtab 符号链接。mount
将简单地 cat 此文件,并且它不再存储绑定信息。