Mount

綁定掛載和df輸出

  • April 10, 2015

我有一個分區**/dev/sdb1**,它安裝在**/data**。在 /etc/fstab 我有:

/dev/sdb1           /data           ext4  defaults  1 2

掛載該分區後,我將進行以下綁定掛載:

/data/backups/f17/opt   /opt            none  rw,bind   0 0
/data/backups/f17/home  /home           none  rw,bind   0 0
/data/var/www/html      /var/www/html/  none  rw,bind   0 0

所有的安裝都做得很好。

問題是當我執行時df,我得到的與 sdb1 相關的唯一條目指向“/opt”,而不是“/data”。

例如:

/dev/sdb1   240233144 196081648 31925236 86% /opt

我希望/想要df顯示原始安裝點,即**/data**,而不是**/opt**。或者至少,顯示所有與 sdb1 相關的掛載點。如果我umount是 /opt 綁定掛載點,那麼會df愉快地顯示 /data(儘管奇怪的是,其他兩個綁定掛載仍然掛載)。

mount -a如果我在終端中執行安裝命令(與讓系統通過使用 /etc/fstab的安裝命令相比),行為沒有區別。

我知道我可以使用類似的東西findmnt --df來更好地了解所有已安裝的文件系統,但我想使用df(而且我不想將 df 別名為其他任何東西)。

  • 軟呢帽 21
  • 核心 3.19.3-200.fc21.x86_64
  • df (GNU coreutils) 8.22
  • 從 util-linux 2.25.2 掛載

謝謝。

更新

(添加更多資訊)

該文件/proc/mounts顯示所有四個掛載點:

/dev/sdb1 /data ext4 rw,relatime,data=ordered 0 0
/dev/sdb1 /var/www/html ext4 rw,relatime,data=ordered 0 0
/dev/sdb1 /home ext4 rw,relatime,data=ordered 0 0
/dev/sdb1 /opt ext4 rw,relatime,data=ordered 0 0

綁定安裝等同於原始安裝。沒有一個被標記為原件,一個被標記為副本。綁定掛載在這方麵類似於硬連結,而不是符號連結。

由於 GNU coreutils 8.21(如果我正確閱讀了更改日誌),df努力只報告每個文件系統一次。較舊的版本包括每個不可忽略的掛載點一個條目,因此綁定掛載會導致多個條目。df顯示每個文件系統的最新掛載點,只要它可以確定。在您的情況下,dfreports /opt, not /data, because/opt是最後添加的。

傳遞選項-a以獲取甚至最近的 coreutils 來報告每個文件系統的所有條目。如果您不傳遞路徑參數,這也會導致列出通常會被忽略的文件系統。如果您確實傳遞了路徑參數,我認為df除了最新的掛載點之外永遠不會報告任何內容。

如果您不想別名df為其他內容,則要麼必須用df自定義實現替換,要麼必須接受與df您想要的不同的報告。如果您需要最早的掛載點而不是最新的掛載點,一個明智的解決方案是只呼叫df -a並保留您感興趣的設備的第一個匹配項。

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