在CentOS系统中,对磁盘的管理是系统管理员的一项核心日常工作,无论是新增存储、排查故障还是规划容量,第一步总是要准确地识别和查看系统中存在的所有磁盘,掌握高效、准确的命令是完成这项任务的基础,本文将详细介绍几种在CentOS中查看所有磁盘的常用方法,并对它们的特点进行分析,以帮助您根据不同场景选择最合适的工具。

使用 lsblk 命令
lsblk(List Block Devices)是现代Linux系统中查看块设备信息最推荐、最直观的命令之一,它以树状结构清晰地展示了磁盘及其分区的关系,输出结果非常易读。
执行以下命令即可:
lsblk
输出结果通常包含以下几列信息:
- NAME: 设备的名称,如
sda,sdb,sda1。 - MAJ:MIN: 主设备号和次设备号,是内核识别设备的标识。
- RM: 可移除设备标识,
1表示是可移除设备(如U盘),0表示是固定设备。 - SIZE: 设备的容量大小。
- RO: 只读标识,
1表示只读,0表示可读写。 - TYPE: 设备类型,这是区分物理磁盘和分区的关键。
disk表示整个物理磁盘,part表示磁盘上的分区。 - MOUNTPOINT: 挂载点,显示该分区或文件系统被挂载到了哪个目录,如果为空,则表示未挂载。
lsblk 的最大优点在于其层次分明,一眼就能看出哪个分区属于哪个磁盘,非常适合快速概览。
使用 fdisk -l 命令
fdisk 是一个经典的磁盘分区工具,而 -l 参数(list)可以用来列出系统中所有磁盘的分区表信息,它提供的信息比 lsblk 更为底层和详细。
由于需要读取原始磁盘信息,通常需要 sudo 或 root 权限:

sudo fdisk -l
该命令的输出会为每一个磁盘设备提供一个详细的报告,包括:
- 磁盘的详细路径(如
/dev/sda)、总容量、扇区数、磁盘类型(DOS/GPT)等。 - 磁盘的分区表,列出了每个分区的具体信息,如启动标志、起始和结束扇区、分区ID、系统类型(如Linux、HPFS/NTFS/exFAT等)。
fdisk -l 非常适合用于需要查看分区具体布局、检查分区表类型或识别未知分区的情况,当系统磁盘较多时,其输出信息会显得有些冗长。
使用 df -h 命令
与前两个命令不同,df(Disk Free)命令的主要功能是查看已挂载文件系统的磁盘空间使用情况,但它同样可以用来间接识别磁盘,加上 -h(human-readable)参数后,会以K、M、G等单位显示容量,更符合人类阅读习惯。
df -h
输出的关键列包括:
- Filesystem: 文件系统的名称,通常与设备名对应,如
/dev/sda1。 - Size: 总容量。
- Used: 已使用容量。
- Avail: 可用容量。
- Use%: 使用百分比。
- Mounted on: 挂载点。
需要注意的是,df 只会显示已经被格式化并挂载了的文件系统,一个全新的、未分区或未挂载的磁盘是不会出现在 df 的输出结果中的,它更适合用于监控磁盘使用情况,而不是发现新磁盘。
为了更清晰地选择合适的工具,下表对上述三个命令进行了小编总结:

| 命令 | 主要用途 | 关键信息 |
|---|---|---|
lsblk |
快速概览磁盘和分区结构 | 设备树状关系、设备类型(disk/part)、挂载点、容量 |
fdisk -l |
查看详细的磁盘分区表信息 | 分区表类型(GPT/DOS)、分区起止扇区、分区系统ID |
df -h |
查看已挂载文件系统的空间使用 | 各分区的已用/可用空间、使用率、挂载点 |
在实际工作中,一个高效的工作流程是:首先使用 lsblk 快速了解系统中有哪些物理磁盘及其分区布局;然后使用 df -h 查看哪些分区已被挂载以及空间使用情况;当需要对特定磁盘进行分区或修改分区表时,再使用 fdisk -l 获取详尽的底层信息。
相关问答 (FAQs)
问题1:如何通过 lsblk 的输出区分物理磁盘和分区?
解答: 在 lsblk 命令的输出中,请重点关注 TYPE 这一列。TYPE 的值是 disk,那么它代表一个完整的物理磁盘,sda、sdb 或 nvme0n1。TYPE 的值是 part,则表示它是一个磁盘上的分区,sda1、sdb2 等,通过这个字段,可以非常清晰地将物理磁盘与其下属的分区区分开来。
问题2:为什么有些磁盘在 lsblk 或 fdisk 中能看到,但在 df -h 中却找不到?
解答: 这是因为 df -h 命令只显示已经被“格式化”并“挂载”到目录树中的文件系统,一个新磁盘的典型处理流程是:系统识别物理磁盘(lsblk能看到)-> 创建分区(fdisk能看到分区)-> 格式化分区(如 mkfs.ext4)-> 挂载分区(如 mount /dev/sdb1 /data),如果一个磁盘只完成了前两步(被识别和分区),但没有进行格式化和挂载,那么它就不会出现在 df -h 的列表中,因为它还不是一个可供操作系统读写文件的“文件系统”。