在Linux系统中,尤其是像CentOS这样的企业级发行版,文件系统的管理是系统管理员的核心职责之一。“挂载”是将一个存储设备(如硬盘分区、光盘、U盘或网络共享)连接到系统目录树中的一个指定点(挂载点)的过程,使其内容可以被访问,有效地查看和管理挂载信息至关重要,本文将深入探讨在CentOS中查看挂载信息的多种方法,从基础命令到高级技巧,旨在为不同水平的用户提供一份全面而清晰的指南。

使用 mount 命令:最直接的查看方式
mount 命令是Linux中用于挂载文件系统的基本工具,但如果不带任何参数直接执行,它会列出当前系统中所有已挂载的文件系统,这是最传统、最直接的查看方法。
执行 mount 命令后,你会看到类似以下的输出:
/dev/sda1 on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=8113948k,nr_inodes=2028487,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
...
每一行输出都包含关键信息,其格式通常为:设备文件 on 挂载点 type 文件系统类型 (挂载选项)。
- 设备文件:如 
/dev/sda1,代表物理磁盘的第一个分区。 - 挂载点:如 ,这是根目录,表示该分区是系统的根文件系统。
 - 文件系统类型:如 
xfs、ext4、proc、sysfs等。 - 挂载选项:括号内的内容,如 
rw(读写)、ro(只读)、noexec(不允许执行程序) 等,定义了文件系统的访问权限和行为。 
为了使输出更具可读性,可以使用 -l 选项来显示卷标:
mount -l
你还可以使用 -t 选项来筛选特定类型的文件系统,只查看 ext4 类型的挂载:
mount -t ext4
使用 df 命令:关注磁盘使用情况
df(disk free)命令主要用于报告文件系统的磁盘空间使用情况,但它同样会列出所有已挂载的文件系统及其挂载点,这使得它成为查看挂载信息的另一个常用工具。
直接运行 df 会显示以1K为单位的块大小,对普通用户来说不够直观。-h(human-readable)选项几乎是必用的:
df -h
输出结果会非常清晰:
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G  3.5G   47G   7% /
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  9.0M  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sdb1       100G   20G   80G  20% /data
这里的列信息非常丰富:
- Filesystem:文件系统或设备。
 - Size:总大小。
 - Used:已使用空间。
 - Avail:可用空间。
 - Use%:使用百分比。
 - Mounted on:挂载点。
 
如果你想在 df 的输出中同时看到文件系统类型,可以结合 -T 选项:
df -hT
使用 findmnt:现代化且功能强大的工具
findmnt 是一个较新的工具,来自 util-linux 包,它提供了一个更清晰、更灵活的方式来查看挂载信息,它的默认输出通常是一个树状结构,能直观地展示挂载点的层级关系。

findmnt
输出示例:
TARGET                                SOURCE                 FSTYPE     OPTIONS
/                                     /dev/sda1              xfs        rw,relatime
├─/sys                                sysfs                  sysfs      rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security              securityfs             securityfs rw,nosuid,nodev,noexec,relatime
│ └─/sys/fs/cgroup                    tmpfs                  tmpfs      rw,nosuid,nodev,noexec,mode=755
│   ├─/sys/fs/cgroup/...              cgroup                 cgroup     rw,nosuid,nodev,noexec,relatime,xxx
├─/proc                               proc                   proc       rw,nosuid,nodev,noexec,relatime
├─/dev                                devtmpfs               devtmpfs   rw,nosuid,size=8113948k,nr_inodes=2028487,mode=755
│ └─/dev/pts                          devpts                 devpts     rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
├─/dev/shm                            tmpfs                  tmpfs      rw,nosuid,nodev
├─/run                                tmpfs                  tmpfs      rw,nosuid,nodev,mode=755
└─/data                               /dev/sdb1              xfs        rw,relatime
findmnt 的强大之处在于其丰富的选项:
-l或--list:以列表形式输出,类似于mount或df,便于脚本处理。-t <类型>或--types <类型>:按文件系统类型筛选。-S <源>或--source <源>:按设备源筛选,findmnt -S /dev/sdb1。-T <目标>或--target <目标>:按挂载点筛选,findmnt -T /data。
查看系统配置文件
除了动态命令,还可以通过查看系统文件来获取挂载信息。
- 
/proc/mounts这是一个虚拟文件,它直接反映了内核中当前挂载的文件系统视图,它的内容与mount命令的输出非常相似,但格式更为统一,适合被程序解析。cat /proc/mounts
 - 
/etc/fstab这个文件定义了系统在启动时需要自动挂载的文件系统,查看此文件可以了解哪些设备被配置为永久挂载。cat /etc/fstab
一个典型的
fstab条目包含六个字段:UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults 0 0- 设备:可以用设备名(
/dev/sdb1)、UUID或LABEL,推荐使用UUID,因为它在设备插拔顺序改变时保持不变。 - 挂载点:设备要挂载到的目录。
 - 文件系统类型:如 
xfs,ext4,nfs。 - 挂载选项:
defaults是一个常用选项组合,包含了rw,suid,dev,exec,auto,nouser,async。 - dump:用于 
dump备份工具,通常设为0。 - pass:用于开机时检查文件系统的顺序,根目录通常为 
1,其他为2,不需要检查的为0。 
 - 设备:可以用设备名(
 
为了更直观地选择合适的工具,下表对上述方法进行了小编总结:
| 方法 | 主要用途 | 关键特性 | 典型场景 | 
|---|---|---|---|
mount | 
查看所有当前挂载 | 经典、详细、信息全面 | 快速获取所有挂载点和选项的原始信息 | 
df -h | 
查看磁盘空间使用 | 直观、人类可读格式 | 检查哪个分区空间不足,同时确认挂载点 | 
findmnt | 
查看和搜索挂载 | 现代、输出灵活(树状/列表)、易于筛选 | 编写脚本、精确查找特定挂载信息、分析挂载层级 | 
/proc/mounts | 
获取内核挂载视图 | 实时、格式统一、程序友好 | 被其他程序或脚本解析挂载状态 | 
/etc/fstab | 
查看静态挂载配置 | 定义开机自动挂载 | 配置新的永久挂载、排查启动挂载问题 | 
相关问答FAQs
问题1:我刚刚插入了一个新的U盘,如何手动将它挂载到 /mnt/usb 目录?
解答: 手动挂载一个设备通常需要以下步骤:
- 
识别设备:使用
lsblk或fdisk -l命令来找到U盘的设备名,通常是/dev/sdb、/dev/sdc等,假设你识别到U盘的分区是/dev/sdb1。lsblk
 - 
创建挂载点:挂载点必须是一个已经存在的空目录。
/mnt/usb不存在,需要先创建它。
sudo mkdir -p /mnt/usb
 - 
执行挂载:使用
mount命令进行挂载,你需要指定设备文件、挂载点,以及文件系统类型(如果不确定,可以尝试让系统自动检测)。# 假设U盘是vfat格式(常见于Windows格式化的U盘) sudo mount /dev/sdb1 /mnt/usb -t vfat # 或者让系统自动检测 sudo mount /dev/sdb1 /mnt/usb
 - 
验证挂载:使用
df -hT或findmnt检查挂载是否成功。df -hT | grep sdb1
使用完毕后,需要安全卸载:
sudo umount /mnt/usb
 
问题2:为什么有时候 df -h 和 lsblk 显示的磁盘大小不一致?
解答:
df 和 lsblk 显示的磁盘大小不一致,通常是因为它们衡量的对象和计算方式不同,这背后有几个可能的原因:
- 
衡量对象不同:
lsblk或fdisk -l显示的是磁盘或分区的原始总大小,这是物理存储介质的总容量。df显示的是文件系统可用的空间大小,文件系统在创建时,会预留一部分空间给root用户(或系统)用于紧急情况或维护(如磁盘碎片整理),防止普通用户占满空间导致系统崩溃,这部分空间df不会计入普通用户的“可用空间”。
 - 
文件系统开销:文件系统本身需要空间来存储元数据,如inode表、超级块、日志等,这部分开销在
lsblk看来属于分区总大小的一部分,但在df看来,它已经被“使用”了。 - 
2的幂次 vs 10的幂次:虽然
df -h使用了人类可读的单位(G, M),但历史上操作系统使用2的幂次(1GiB = 2^30 Bytes)来计算,而硬盘厂商通常使用10的幂次(1GB = 10^9 Bytes)来标注容量,这会导致理论上的微小差异,但通常不是主要原因。 
小编总结来说,lsblk 告诉你“硬盘有多大”,而 df 告诉你“文件系统上还剩多少空间可以给你用”。df 的数字通常会比 lsblk 显示的分区大小略小,这是完全正常的。