綁定掛載和df輸出
我有一個分區**/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
顯示每個文件系統的最新掛載點,只要它可以確定。在您的情況下,df
reports/opt
, not/data
, because/opt
是最後添加的。傳遞選項
-a
以獲取甚至最近的 coreutils 來報告每個文件系統的所有條目。如果您不傳遞路徑參數,這也會導致列出通常會被忽略的文件系統。如果您確實傳遞了路徑參數,我認為df
除了最新的掛載點之外永遠不會報告任何內容。如果您不想別名
df
為其他內容,則要麼必須用df
自定義實現替換,要麼必須接受與df
您想要的不同的報告。如果您需要最早的掛載點而不是最新的掛載點,一個明智的解決方案是只呼叫df -a
並保留您感興趣的設備的第一個匹配項。