在CentOS系统中,有效地管理和监控硬盘是确保系统稳定运行和高效利用资源的关键任务,无论是系统管理员还是普通用户,都需要掌握一系列命令来查看磁盘信息,包括磁盘布局、分区情况、空间使用状况以及磁盘健康状态,本文将详细介绍几种在CentOS中查看硬盘信息的核心工具,并通过实例说明它们的使用方法和适用场景。
快速概览:lsblk 与 df
对于日常的快速检查,lsblk
和 df
是最常用且最直观的两个命令,它们能迅速提供磁盘和文件系统的基本信息。
lsblk:列出块设备
lsblk
(List Block Devices)命令以树状结构清晰地展示系统中的所有块设备,包括硬盘、分区、逻辑卷等,它默认不会显示RAM盘等空设备。
基本用法:
lsblk
输出示例及解读:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 238G 0 part
├─cl-root 253:0 0 200G 0 lvm /
└─cl-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 465.8G 0 disk /data
- NAME: 设备名称。
- MAJ:MIN: 主设备号和次设备号。
- RM: 是否为可移动设备(0为否,1为是)。
- SIZE: 设备容量。
- RO: 是否为只读(0为否,1为是)。
- TYPE: 设备类型(disk为磁盘,part为分区,lvm为逻辑卷)。
- MOUNTPOINT: 挂载点。
从上例可以直观地看到,系统有两块物理磁盘(sda
和sdb
)。sda
被分成了两个分区,其中一个分区被用作LVM(逻辑卷管理),并划分了根分区()和交换分区(swap
)。sdb
则直接作为一个分区挂载到了/data
目录。
df:报告文件系统磁盘空间使用量
df
(Disk Free)命令用于显示文件系统的总容量、已用空间、可用空间及使用百分比,通常与-h
(human-readable)参数结合使用,以便以KB、MB、GB等易读的单位显示。
基本用法:
df -h
输出示例及解读:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 200G 5.0G 195G 3% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 512M 6.1M 506M 2% /boot/efi
/dev/sdb 462G 73M 439G 1% /data
- Filesystem: 文件系统对应的设备路径。
- Size: 总容量。
- Used: 已使用空间。
- Avail: 可用空间。
- Use%: 使用百分比。
- Mounted on: 挂载点。
df
命令的视角是文件系统层面的,它关心的是“某个挂载点还剩多少空间”,这对于监控磁盘是否快满至关重要。
深度分区信息:fdisk 与 parted
当需要对磁盘进行分区操作或查看更底层的分区信息时,fdisk
和parted
是更专业的工具。
fdisk:磁盘分区表操作器
fdisk
是一个传统的、功能强大的磁盘分区工具,使用-l
参数可以列出所有磁盘的分区表信息,而不会进入交互模式。
基本用法:
sudo fdisk -l
输出片段示例:
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
...
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M ef EFI System
/dev/sda2 1050624 500117503 499066880 238.1G 8e Linux LVM
fdisk -l
的输出非常详细,包含了磁盘的几何信息(扇区、磁头、柱面)以及每个分区的起始和结束扇区、分区ID(如8e
代表Linux LVM)等,这对于诊断分区问题和进行手动分区都非常有用。
parted:更强的分区工具
parted
支持GPT和MBR两种分区表格式,功能比fdisk
更现代,尤其擅长处理大容量磁盘,同样,-l
参数用于列出磁盘分区信息。
基本用法:
sudo parted -l
输出片段示例:
Model: ATA VENDOR SSD (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 256GB 255GB lvm
parted
的输出格式简洁明了,并直接指明了分区表类型(gpt
),这在现代系统中非常普遍。
深入目录空间分析:du
df
查看的是整个文件系统的使用情况,如果我们想知道是哪个具体的目录或文件占用了大量空间,就需要使用du
(Disk Usage)命令。
基本用法:
du -h /path/to/directory
:查看指定目录下各子目录的大小,以易读格式显示。du -sh /path/to/directory
:-s
(–summarize)选项只显示该目录的总大小,而不列出子目录。
示例:
du -sh /var/log
2G /var/log
这个命令能快速定位到大文件或大目录,是进行磁盘空间清理时的得力助手。
磁盘健康状态监测:smartctl
除了空间信息,磁盘的物理健康状况同样重要。smartctl
是smartmontools
软件包的一部分,用于读取和解读硬盘的S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)信息。
需要安装该工具:
sudo yum install smartmontools
查看硬盘的全面健康报告(以/dev/sda
为例):
sudo smartctl -a /dev/sda
输出结果包含了详细的身份信息、S.M.A.R.T.属性(如通电时间、坏块数量、重新映射扇区计数等),通过分析这些数据可以预测硬盘潜在的故障风险。
为了更清晰地选择合适的工具,下表小编总结了上述命令的核心功能:
命令 | 主要用途 | 优点 | 缺点 |
---|---|---|---|
lsblk | 快速查看块设备树状结构 | 直观,信息精炼,显示挂载点 | 信息相对简单,不包含空间使用量 |
df -h | 查看已挂载文件系统的空间使用情况 | 快速了解各分区剩余空间,便于监控 | 无法查看未挂载分区,不显示目录层级 |
fdisk -l | 查看详细的磁盘分区表信息 | 信息非常底层,包含分区类型和ID | 输出信息对新手不太友好 |
parted -l | 查看分区表及分区信息,支持GPT | 格式清晰,能识别现代分区表 | 功能与fdisk有重叠,但更现代 |
du -sh | 分析特定目录或文件的磁盘占用 | 精确定位大文件/目录,便于清理 | 扫描大目录时耗时较长 |
smartctl -a | 检查硬盘的S.M.A.R.T.健康状态 | 提供硬件层面的健康预警,预防数据丢失 | 需要额外安装,输出信息专业性强 |
相关问答FAQs
Q1: df
和 du
命令显示的已用空间不一致,为什么?
A: 这是一个常见问题,通常由以下几个原因造成:
- 文件被删除但进程仍在使用: 如果一个文件被
rm
命令删除,但仍有正在运行的进程持有该文件的句柄,那么df
会认为该空间仍在使用,而du
扫描文件系统时找不到这个文件,因此不会计算其大小,解决方法是重启相关服务或系统。 - 文件系统保留空间:
ext4
等文件系统默认会为root
用户保留一部分空间(通常为5%),以防系统满盘时无法登录。df
计算的总空间和可用空间会考虑这部分,而du
扫描的是实际文件占用。 - 挂载点下的目录: 如果在一个非空的目录上挂载了新的文件系统,
du
扫描该目录时会看到新文件系统下的内容,而df
会分别报告原文件系统和新文件系统的空间,这会导致在根目录下用du
计算总和与df
的根分区使用量不符。
Q2: 我在服务器上插入了一块新硬盘,但为什么使用lsblk
能看到设备,而df
却看不到?
A: 因为一块新硬盘在被系统使用之前,需要经过三个主要步骤:
- 分区: 硬盘需要被划分为一个或多个分区,新硬盘通常是“裸盘”,没有分区表或分区,你可以使用
fdisk
或parted
等工具来创建分区。sudo fdisk /dev/sdb
。 - 格式化: 创建分区后,你需要为分区指定一个文件系统(如ext4, xfs),这个过程称为格式化。
sudo mkfs.ext4 /dev/sdb1
,未经格式化的分区无法存储数据。 - 挂载: 格式化后的分区需要被关联到系统的一个目录(挂载点)才能访问。
sudo mount /dev/sdb1 /mnt/newdisk
。df
命令只会显示已经挂载的文件系统。
lsblk
能够检测到物理设备的存在,而df
关心的是文件系统的可用空间,只有当你完成了上述所有步骤后,df
才会显示这块新硬盘分区的信息。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复