Jea*_*ans 2 linux filesystems mount hard-disk
我最近了解到您可以挂载两种不同类型的文件系统:逻辑文件系统和物理文件系统。
根据我的理解,物理文件系统是位于物理连接到机器的磁盘上的硬件。
而逻辑文件系统存在于远程某处并通过网络安装。
一天前,我 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)
Run Code Online (Sandbox Code Playgroud)
要计算文件系统,请删除标题并将输出提供给wc -l
:
findmnt -n -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \\t) | wc -l
Run Code Online (Sandbox Code Playgroud)
可以从图像文件和其他非设备文件,甚至是网络上的远程块设备挂载此类文件系统类型;但是这种方法在大多数系统上都会给你很好的结果。
另一种方法是从磁盘设备本身开始,使用lsblk
; lsblk -f
将输出物理设备树,但需要许多层才能到达实际安装的文件系统。您可以将其与上述有关物理文件系统的信息结合起来,以仅列出与系统上的块设备匹配的文件系统:
lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \\t)
Run Code Online (Sandbox Code Playgroud)
计数给出所需的结果:
lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \\t) | wc -l
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1266 次 |
最近记录: |