在CentOS系统中,管理和监控硬盘是系统管理员的一项核心日常工作,无论是为了规划存储空间、排查性能瓶颈,还是预防硬件故障,熟练掌握查看硬盘信息的各种命令都至关重要,本文将系统性地介绍在CentOS中查看硬盘状态、分区、空间使用及健康情况的方法,旨在提供一份清晰、实用的操作指南。
查看磁盘列表与分区结构
了解系统中有哪些物理磁盘以及它们是如何被分区的,是进行存储管理的第一步,以下三个命令是完成此任务最常用的工具。
使用 lsblk
命令
lsblk
(List Block Devices)是一个现代且直观的命令,它以树状结构清晰地展示块设备(磁盘、分区等)及其相互关系。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk └─sdb1 8:17 0 100G 0 part /data
从输出中,我们可以看到系统有两块硬盘(sda
和sdb
),sda
被分成了两个分区,其中sda2
是LVM(逻辑卷管理)物理卷,并在此基础上创建了根分区和交换分区。sdb
则整个作为一个分区挂载到了/data
目录。
使用 fdisk -l
命令
fdisk
是一个经典的磁盘分区工具,加上-l
参数后,它会列出所有磁盘的分区表信息,这个命令需要root权限。
# fdisk -l Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors ... Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors ... Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 209715199 209713152 100G 83 Linux
fdisk -l
的输出更为详细,包含了磁盘的几何信息(扇区、磁头、柱面)和分区的具体起止位置,非常适合需要深入了解分区布局的场景。
使用 parted -l
命令
parted
是另一个强大的分区工具,它对GPT(GUID Partition Table)格式的支持比fdisk
更好,适合处理大容量硬盘(超过2TB)。
# parted -l Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 1075MB 1074MB primary ext4 boot 2 1075MB 21.5GB 20.4GB primary lvm Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 108GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 108GB 108GB primary ext4
查看磁盘空间使用情况
知道了磁盘结构,下一步就是关注每个分区的空间使用情况。
使用 df -h
命令
df
(Disk Free)命令用于显示文件系统的磁盘空间使用情况。-h
参数(Human-readable)会以KB、MB、GB等易读的格式输出。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 17G 2.1G 15G 13% / /dev/sda1 1014M 150M 865M 15% /boot /dev/sdb1 98G 60M 93G 1% /data tmpfs 1.9G 0 1.9G 0% /run/user/0
这个命令清晰地列出了每个挂载点的总大小、已用空间、可用空间和使用百分比,是日常监控最频繁使用的命令。
使用 du -sh
命令
du
(Disk Usage)命令用于查看指定目录或文件的磁盘占用情况。-s
(summarize)参数表示只显示总计,-h
同样表示易读格式。
# 查看根目录下各个一级目录的大小 $ du -sh /var/* 4.0K /var/adm 4.0K /var/cache 16K /var/db ... 120M /var/log
当某个分区空间告急时,du
是定位“大胃王”目录和文件的神器。
查看磁盘健康状态
对于物理硬盘,通过S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)信息可以预测潜在的硬件故障。
使用 smartctl
命令
首先需要安装smartmontools
包:yum install smartmontools
或 dnf install smartmontools
。
查看硬盘是否支持S.M.A.R.T.
# smartctl -i /dev/sda smartctl 7.0 2019-08-01 r4891 [x86_64-linux-4.18.0-193.el8.x86_64] (local build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: VBOX HARDDISK Device Model: VBOX HARDDISK Serial Number: VB1234abcd-5678efgh LU WWN Device Id: 5 83ca7c0 0f123456 Firmware Version: 1.0 User Capacity: 21,474,836,480 bytes [21.4 GB] Sector Size: 512 bytes logical/physical Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 2.6, 3.0 Gb/s Local Time is: Mon Oct 26 10:30:00 2025 CST SMART support is: Available - device has SMART capability. SMART support is: Enabled
查看健康状态概要
# smartctl -H /dev/sda === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
如果显示
PASSED
,则表示硬盘状态良好,如果显示FAILED!
,则应立即备份数据并准备更换硬盘。
相关问答FAQs
问题1:为什么 df
和 du
命令显示的已用空间常常不一致?
解答: 这是一个常见现象,主要原因有以下几点:
- 文件已删除但进程仍在使用: 当一个文件被删除,但仍有正在运行的进程打开了这个文件句柄时,
du
命令扫描不到这个文件,所以不会计算它的大小,但内核会认为该文件占用的块仍在使用,因此df
会将其计入已用空间,解决方法是重启相关服务或系统。 - 文件系统保留空间: ext4等文件系统默认会为
root
用户预留一部分空间(通常是5%),以防系统满盘时无法登录进行维护。df
看到的“总大小”是包含这部分空间的,而du
扫描的是普通用户文件,所以df
的可用空间会比“总大小 – du大小”要小。 - 非文件数据块: 磁盘上还存在一些非文件数据的块,如inode节点、元数据、日志等,这些
du
不会直接计算,但会占用df
报告的空间。
问题2:如何在CentOS中查看一块新添加的硬盘?
解答: 当物理上连接了一块新硬盘后,可以按照以下步骤在系统中查看并识别它:
- 扫描新设备: 执行命令
echo "- - -" > /sys/class/scsi_host/host0/scan
,如果有多块SCSI控制器,需要将host0
替换为host1
,host2
等,或者使用脚本遍历所有/sys/class/scsi_host/host*/scan
。 - 查看块设备列表: 执行
lsblk
或fdisk -l
,新硬盘会出现在列表中,通常会是/dev/sdb
、/dev/sdc
等(取决于你已有的磁盘数量),通过大小可以很容易地识别出哪一块是新加的。 - 后续操作: 识别出新硬盘后,你就可以使用
fdisk
或parted
对其进行分区,然后用mkfs
(如mkfs.ext4
)创建文件系统,最后通过mount
命令将其挂载到指定目录使用。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复