显示 v2.25.2 之后挂载的绑定挂载源路径

显示 v2.25.2 之后挂载的绑定挂载源路径

更新,我重新提出这个问题,因为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 此文件,并且它不再存储绑定信息。

相关内容