Linux
如何找出有多少物理安裝的文件系統?
我最近了解到您可以掛載兩種不同類型的文件系統:邏輯文件系統和物理文件系統。
據我了解,物理文件系統是位於與機器物理連接的磁碟上的硬體。
而邏輯文件系統存在於遠端某處並通過網路安裝。
一天前,我 ssh 進入伺服器並執行命令
mount | wc -l
並得到答案 17。今天我執行相同的命令並得到 70。我猜測mount
列出了物理和邏輯安裝的文件系統。有沒有一種方法可以計算僅安裝的物理文件系統的數量?最好用簡短的命令?
“邏輯”文件系統不一定安裝在網路上;例如,在您的系統上安裝了 70 個文件系統,其中大部分可能是與核心功能相對應的文件系統,而不是網路文件系統。邏輯文件系統包括
sysfs
,proc
, 所有 cgroup 文件系統,tmpfs
,devtmpfs
等,它們都是“本地”文件系統。“非物理”文件系統由核心在
/proc/filesystems
using中標識nodev
,因此您可以使用它來僅列出“物理”文件系統,使用findmnt
:findmnt -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \\t)
要計算文件系統,請刪除標題並將輸出提供給
wc -l
:findmnt -n -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \\t) | wc -l
可以從圖像文件和其他非設備文件,甚至是網路上的遠端塊設備掛載此類文件系統類型;但是,這種方法會在大多數係統上為您提供良好的結果。
另一種方法是從磁碟設備本身開始,使用
lsblk
;lsblk -f
將輸出物理設備樹,但是需要許多層才能到達實際安裝的文件系統。您可以將其與上述有關物理文件系統的資訊結合起來,僅列出與系統上的塊設備匹配的文件系統:lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \\t)
計數得到所需結果:
lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \\t) | wc -l