Linux
僅列出綁定掛載
而不是 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