Linux

mount –bind olddir newdir後如何查看olddir?

  • October 26, 2013

在我的 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)

這是一個錯誤,沒有給你答案,但這裡是錯誤報告:

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,errors=remount-ro,data=ordered 12 34 56:78 /sub /mnt/partial rw,relatime - ext3 /dev/foo rw,errors=remount-ro,data=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

引用自:https://serverfault.com/questions/548564