在Linux系统中,查看硬盘信息是系统管理、故障排查和资源优化的基础操作,通过不同命令可以从多个维度(如设备结构、分区信息、空间使用、健康状态等)获取硬盘详情,以下详细介绍常用方法及其实际应用。
基础块设备信息查看
块设备是Linux中硬盘的抽象表示,通过基础命令可快速了解磁盘的物理结构和分区情况。
lsblk
:列出块设备信息
lsblk
以树状结构显示块设备,包括磁盘、分区及挂载点,适合直观查看设备层级关系。
- 常用参数:
-f
:显示文件系统类型(如ext4、xfs)、UUID及挂载点;-m
:显示设备的权限、所有者及所属组;-o NAME,SIZE,RO,TYPE,MOUNTPOINT
:自定义输出列(设备名、大小、只读状态、类型、挂载点)。
- 示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238.5G 0 disk ├─sda1 8:1 0 500M 0 part /boot/efi └─sda2 8:2 0 238G 0 part / nvme0n1 259:0 0 931.5G 0 disk └─nvme0n1p1 259:1 0 931.5G 0 part /data
TYPE
为disk
表示整块硬盘,part
表示分区;SIZE
显示磁盘容量(默认单位为KB,可通过-b
指定字节)。
fdisk
:分区表管理工具
fdisk
是经典的分区管理工具,通过-l
参数可查看所有磁盘的分区表信息,包括分区类型、起始/结束扇区等。
- 常用参数:
-l
:列出所有磁盘的分区详情;/dev/sda
:指定目标磁盘(如/dev/sdb
、/dev/nvme0n1
)。
- 示例输出:
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors Disk model: WDC WD10EZEX-08WN4A0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Device Start End Sectors Size Type /dev/sda1 2048 1024000 1021951 500M EFI System /dev/sda2 1024000 500117503 499093504 238G Linux filesystem
输出中包含磁盘型号、分区表类型(gpt/mbr)、分区的起始/结束扇区及大小,适合分析分区布局。
blkid
:查看块设备属性
blkid
用于显示块设备的文件系统类型、UUID、LABEL等属性,常用于确认分区格式或挂载参数。
- 示例输出:
/dev/sda1: UUID="C12A7328-F81F-11D2-BA4B-00A0C93EC93B" TYPE="vfat" PARTLABEL="EFI System" PARTUUID="12345678-1234-1234-1234-123456789abc" /dev/sda2: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" PARTUUID="87654321-4321-4321-4321-abcdef123456"
文件系统空间使用情况
了解文件系统的空间占用是管理磁盘的核心,常用df
和du
命令分别从整体和局部视角分析空间使用。
df
:文件系统空间统计
df
按文件系统显示磁盘空间使用情况,适用于检查整体空间是否充足。
- 常用参数:
-h
:以人类可读格式显示(如K、M、G);-T
:显示文件系统类型;-i
:显示inode使用情况(inode耗尽会导致无法创建文件,即使空间充足)。
- 示例输出:
Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 ext4 238G 50G 178G 22% / /dev/nvme0n1p1 xfs 932G 200G 732G 22% /data tmpfs tmpfs 16G 0 16G 0% /dev/shm
Use%
表示已用空间占比,若接近100%,需及时清理或扩容;Avail
是可用空间(考虑保留空间,实际可用量可能略大)。
du
:目录/文件大小统计
du
用于递归计算指定目录或文件的大小,适合定位大文件或目录。
- 常用参数:
-sh
:显示总大小(s
汇总,h
人类可读);--max-depth=1
:限制递归深度(仅显示一级子目录大小)。
- 示例输出:
/data 200G /data/logs 150G /data/videos 45G
硬盘物理与健康状态监控
对于硬盘维护,了解物理信息和健康状态可提前预警故障,需借助专业工具。
hdparm
:查看硬盘物理信息
hdparm
可获取硬盘型号、序列号、转速等物理参数,需安装(sudo apt install hdparm
)。
- 常用参数:
-i
:显示硬盘标识信息(型号、固件版本、接口类型);-t
:测试读取速度(非精确,仅作参考)。
- 示例输出:
/dev/sda: Model=WDC WD10EZEX-08WN4A0, FwRev=80.00A80, SerialNo=WD-WCC4N0KZ2Y7 Config={HardSect NotMFM HdSw>15uSec SpinControlRpmCmd} RawCHS=16383/16/63, TrkSize=0, SectSize=512, ECCbytes=40
smartctl
:S.M.A.R.T.健康检测
S.M.A.R.T.(自我监控、分析和报告技术)是硬盘的健康监测标准,smartctl
来自smartmontools
工具包(需安装)。
- 常用参数:
-a
:显示完整的S.M.A.R.T.信息(包括属性值、阈值、错误日志);--health
:仅显示健康状态摘要;/dev/sda
:指定目标硬盘。
- 示例输出:
SMART overall-health self-assessment test result: PASSED SMART Attribute Data: ID# Attribute Name Flags Value Worst Threshold 9 Power_On_Hours 0x0032 12345 65535 00000 194 Temperature_Celsius 0x0022 35 00000 00000
若
SMART overall-health
显示FAILED
,或属性值(如Reallocated_Sector_Ct
)接近阈值,需立即备份数据并更换硬盘。
nvme-cli
:NVMe硬盘专用工具
对于NVMe固态硬盘,需使用nvme-cli
工具(sudo apt install nvme-cli
)查看专属信息,如温度、磨损等级等。
- 常用命令:
nvme list
:列出NVMe设备;nvme smart-log /dev/nvme0n1
:显示SMART日志(包含温度、可用剩余寿命等)。
常用查看命令总结表
命令 | 主要功能 | 常用参数 | 适用场景 |
---|---|---|---|
lsblk |
列出块设备树状结构 | -f , -m , -o NAME,SIZE,MOUNTPOINT |
查看设备层级、分区及挂载点 |
df |
文件系统空间统计 | -h , -T , -i |
检查整体空间使用及inode状态 |
du |
目录/文件大小统计 | -sh , --max-depth=1 |
定位大文件或目录 |
fdisk -l |
查看分区表详情 | -l |
分析分区布局、类型(gpt/mbr) |
smartctl |
S.M.A.R.T.健康检测 | -a , --health |
硬盘健康状态监控与故障预警 |
hdparm |
硬盘物理信息读取 | -i , -t |
获取型号、转速等物理参数 |
相关问答FAQs
Q1: 如何测试硬盘的读写速度?
A1: 可使用dd
命令进行简单测试(需确保无其他大流量IO操作),读取速度测试:
dd if=/dev/sda of=/dev/null bs=1G count=1 iflag=direct
写入速度测试:
dd if=/dev/zero of=/testfile bs=1G count=1 oflag=direct
测试后通过ls -lh /testfile
查看文件大小,计算速度(如1GB耗时2秒,则速度为500MB/s),更专业的工具可使用fio
( Flexible I/O Tester)。
Q2: 为什么df
显示的已用空间和du
计算的不一致?
A2: 主要原因包括:
- 文件系统保留空间:Linux文件系统默认预留5%空间(仅root用户可使用),
df
包含这部分空间,而du
不统计; - 删除文件未释放:若文件被删除但进程仍持有句柄(如日志文件被应用打开),空间未被实际释放,
df
仍计入已用,du
无法统计已删除文件; - 挂载点包含其他文件系统:如
/home
挂载独立分区,du /home
仅统计该分区,而df /
显示根分区空间,两者无直接关联。
可通过df -i
检查inode是否耗尽,或使用lsof | grep deleted
查看被删除但未释放的文件。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/18645.html