mount --bind olddir newdir 之后如何查看olddir?

mount --bind olddir newdir 之后如何查看olddir?

在我的 Debian 7 中:

$ pwd
/home/freestyler

$ mkdir old new
# mount --bind old new

然后

$ mount
/dev/cciss/c0d0p9 on /home/freestyler/new type ext4(rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered)

我只能看到/dev/cciss/c0d0p9,这与/home/freestyler/old

我如何才能获得原始的 olddir 路径?

在 Debian 6 中:

outpt mountolddir 路径也一样:

 $ mount

/home/freestyler/old on /home/freestyler/new type none (rw,bind)

答案1

这是一个错误,我没有答案给你,但是这里是错误报告:

mount:绑定挂载未在挂载输出中显示

我真的很想知道如何解决这个问题,所以我拿起了 Debian 7 Live CD 并开始尝试。我最终找到了这篇文章:

请注意,/etc/mtab 仅在它是由 mount 维护的文本文件时才有用。某些发行版将 /etc/mtab 设置为指向 /proc/mounts 的符号链接;/proc/mounts 基本等同于 /etc/mtab,但确实存在一些差异,其中之一就是不跟踪绑定挂载。

内核保留但未在 /proc/mounts 中显示的一条信息是,挂载点仅显示挂载文件系统上的目录树的一部分。实际上,这主要发生在绑定挂载中:

mount --bind /mnt/one/sub /mnt/partial

在 /proc/mounts 中,/mnt/one 和 /mnt/partial 的条目具有相同的设备、相同的文件系统类型和相同的选项。/mnt/partial 仅显示以 /sub 为根的文件系统部分,这一信息在 /proc/$pid/mountinfo(第 4 列)中的每个进程挂载点信息中可见。那里的条目如下所示:

12 34 56:78 / /mnt/one rw,relatime - ext3 /dev/foo rw,错误=remount-ro,数据=ordered 12 34 56:78 /sub /mnt/partial rw,relatime - ext3 /dev/foo rw,错误=remount-ro,数据=ordered

在我的测试中,您可以使用以下方法提取所需的信息:

root@debian:~# cat /proc/1/mountinfo 
14 24 0:13 / /sys rw,nosuid,nodev,noexec,relatime - sysfs sysfs rw
15 24 0:3 / /proc rw,nosuid,nodev,noexec,relatime - proc proc rw
16 24 0:5 / /dev rw,relatime - devtmpfs udev rw,size=10240k,nr_inodes=126630,mode=755
17 16 0:10 / /dev/pts rw,nosuid,noexec,relatime - devpts devpts rw,gid=5,mode=620,ptmxmode=000
18 24 0:14 / /run rw,nosuid,noexec,relatime - tmpfs tmpfs rw,size=102704k,mode=755
20 24 11:0 / /lib/live/mount/medium ro,noatime - iso9660 /dev/sr0 ro
21 24 7:0 / /lib/live/mount/rootfs/filesystem.squashfs ro,noatime - squashfs /dev/loop0 ro
22 23 0:16 / /lib/live/mount/overlay rw,relatime - tmpfs tmpfs rw
23 24 0:17 / /lib/live/mount/overlay rw,noatime - tmpfs tmpfs rw,mode=755
24 1 0:18 / / rw,relatime - aufs aufs rw,si=993d359391edfb38,noxino
25 18 0:19 / /run/lock rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=5120k
26 18 0:20 / /run/shm rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=205400k
27 15 0:21 / /proc/sys/fs/binfmt_misc rw,nosuid,nodev,noexec,relatime - binfmt_misc binfmt_misc rw
29 24 0:18 / /bindmount rw,relatime - aufs aufs rw,si=993d359391edfb38,noxino
30 24 0:18 /root/old /root/new rw,relatime - aufs aufs rw,si=993d359391edfb38,noxino

从:仅列出绑定挂载

您还可以使用,cat /proc/$$/mountinfo或者如果在应用程序中,您可以使用本地应用程序 PID。

在另一个问题的评论中,另一个可能使用的选项是,findmnt |fgrep [或者如果您只是进行目视检查,那么findmnt您可以向下阅读源列以查看列出的绑定挂载。

root@debian:~# findmnt | fgrep [
└─/root/new                                  aufs[/root/old] aufs         rw,relatime,si=993d359391edfb38,noxino

相关内容