Linux

僅列出綁定掛載

  • August 30, 2020

而不是 using mount | grep,我想使用mount -l -t bind,但這不起作用,並-t none顯示所有安裝。

綁定掛載不是文件系統類型,也不是掛載文件系統的參數;它們是掛載操作的參數。據我所知,就核心而言,以下命令序列導致基本相同的系統狀態:

mount /dev/foo /mnt/one; mount --bind /mnt/one /mnt/two
mount /dev/foo /mnt/two; mount --bind /mnt/two /mnt/one

因此,記住哪些掛載是綁定掛載的唯一方法是mount/etc/mtab. 綁定掛載操作由bind掛載選項指示(這會導致文件系統類型被忽略)。但mount沒有選項僅列出使用一組特定選項集安裝的文件系統。因此,您需要進行自己的過濾。

mount | grep -E '[,(]bind[,)]'
</etc/mtab awk '$4 ~ /(^|,)bind(,|$)/'

請注意,/etc/mtab僅當它是由mount. 一些發行版設置/etc/mtab為符號連結,/proc/mounts而不是;/proc/mounts大部分等同於/etc/mtab但確實有一些差異,其中之一是不跟踪綁定安裝。

核心保留但未在 中顯示的一條資訊是/proc/mounts,當掛載點僅顯示已掛載文件系統上目錄樹的一部分時。在實踐中,這主要發生在綁定掛載上:

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

在中,和/proc/mounts的條目具有相同的設備、相同的文件系統類型和相同的選項。在(第 4 列)中的每個程序掛載點資訊中可以看到僅顯示文件系統的根部分的資訊。那裡的條目如下所示:/mnt/one``/mnt/partial``/mnt/partial``/sub/proc/$pid/mountinfo

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

也許這可以解決問題:

findmnt | grep  "\["

例子:

$ mkdir /tmp/foo
$ sudo mount --bind /media/ /tmp/foo
$ findmnt | grep  "\["
│ └─/tmp/foo                     /dev/sda2[/media] ext4            rw,relatime,data=ordered

引用自:https://unix.stackexchange.com/questions/18048