Linux

如何找出有多少物理安裝的文件系統?

  • April 7, 2018

我最近了解到您可以掛載兩種不同類型的文件系統:邏輯文件系統和物理文件系統。

據我了解,物理文件系統是位於與機器物理連接的磁碟上的硬體。

而邏輯文件系統存在於遠端某處並通過網路安裝。

一天前,我 ssh 進入伺服器並執行命令mount | wc -l並得到答案 17。今天我執行相同的命令並得到 70。我猜測mount列出了物理和邏輯安裝的文件系統。

有沒有一種方法可以計算僅安裝的物理文件系統的數量?最好用簡短的命令?

“邏輯”文件系統不一定安裝在網路上;例如,在您的系統上安裝了 70 個文件系統,其中大部分可能是與核心功能相對應的文件系統,而不是網路文件系統。邏輯文件系統包括sysfs, proc, 所有 cgroup 文件系統, tmpfs,devtmpfs等,它們都是“本地”文件系統。

“非物理”文件系統由核心在/proc/filesystemsusing中標識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

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