在Linux系统中,查看硬盘信息是系统管理、故障排查和性能优化的基础操作,Linux提供了多种命令和工具,从不同维度(如设备识别、分区结构、使用情况、健康状态等)展示硬盘信息,本文将详细介绍这些方法,并通过示例帮助读者理解输出结果的含义。

硬盘设备命名规则
在Linux中,硬盘设备文件通常位于/dev目录下,命名规则与硬盘接口类型相关:
- IDE硬盘:早期接口,设备名为
/dev/hd[a-z](如/dev/hda)。 - SCSI/SATA/USB硬盘:当前主流接口,设备名为
/dev/sd[a-z](如/dev/sda,a表示第1块硬盘,b为第2块,以此类推)。 - NVMe硬盘:高速固态硬盘接口,设备名为
/dev/nvme[0-9]n[1-9](如/dev/nvme0n1,0为控制器编号,1为磁盘编号)。 - PCIe SSD:部分高性能SSD可能以
/dev/pciename形式命名,但较少见。
了解命名规则后,可通过ls /dev | grep -E 'sd|nvme|hd'查看系统中的所有硬盘设备。
查看硬盘基本信息与分区结构
lsblk:列出块设备信息(推荐)
lsblk(list block devices)是Linux中最常用的块设备查看工具,以树状结构展示设备及其分区信息,支持自定义输出列。
常用参数:
-f:显示文件系统类型(FSTYPE)、挂载点(MOUNTPOINT)和UUID。-m:显示设备权限、所有者、组信息。-t:显示设备拓扑结构(如层级、是否为虚拟设备)。-o NAME,SIZE,FSTYPE,MOUNTPOINT,ROTA:自定义输出列(如设备名、大小、文件系统、挂载点、是否为旋转介质,ROTA=1表示机械硬盘,0表示SSD)。
示例:
lsblk -f -o NAME,SIZE,FSTYPE,MOUNTPOINT,ROTA
输出解读(示例表格):
| NAME | SIZE | FSTYPE | MOUNTPOINT | ROTA |
|---|---|---|---|---|
| sda | 8T | 1 | ||
| ├─sda1 | 512M | vfat | /boot/efi | 1 |
| └─sda2 | 8T | ext4 | 1 | |
| nvme0n1 | 512G | 0 | ||
| └─nvme0n1p1 | 512G | xfs | /data | 0 |
从输出可直观看到:sda是1.8TB机械硬盘(ROTA=1),分为两个分区;nvme0n1是512GB SSD(ROTA=0),仅有一个分区挂载到/data。
fdisk:查看和管理分区表
fdisk是经典的分区工具,适合查看MBR或GPT分区表的详细信息。
用法:
fdisk -l /dev/sda # 查看/dev/sda的分区表
输出解读:
Device:分区设备名(如/dev/sda1)。Boot:是否为启动分区(标记为)。Start/End:分区的起始和结束扇区。Sectors:分区大小(扇区数)。Size:分区大小(自动换算为KB/MB/GB)。Id:分区类型(如83为Linux原生分区,8e为LVM分区,7为NTFS分区)。
交互模式:直接运行fdisk /dev/sda进入交互界面,输入p打印分区表,q退出,m查看帮助。
parted:高级分区工具(支持GPT/MBR)
parted比fdisk更强大,支持GPT分区表、大容量硬盘(超过2TB),且可调整分区大小。
用法:

parted -l # 列出所有设备的分区信息
输出解读:
Model:硬盘型号(如Samsung SSD 870 EVO 500GB)。Disk /dev/nvme0n1:硬盘设备名及总大小。Partition Table:分区表类型(如gpt)。Number:分区编号,Start/End:分区起始和结束位置,Size:分区大小,File system:文件系统类型。
查看磁盘使用情况
df:文件系统磁盘使用量
df(disk free)用于查看已挂载文件系统的磁盘使用情况,默认单位为KB。
常用参数:
-h:人类可读格式(如1K、234M、2G)。-T:显示文件系统类型(如ext4、xfs、vfat)。-i:显示inode使用情况(inode耗尽会导致无法创建文件)。
示例:
df -hT
输出解读(示例表格):
| Filesystem | Type | Size | Used | Avail | Use% | Mounted on |
|---|---|---|---|---|---|---|
| /dev/sda2 | ext4 | 8T | 800G | 950G | 45% | |
| /dev/nvme0n1p1 | xfs | 512G | 300G | 200G | 60% | /data |
| tmpfs | tmpfs | 16G | 0 | 16G | 0% | /dev/shm |
重点关注Use%(使用率)和Mounted on(挂载点),避免磁盘空间不足导致系统故障。
du:目录/文件磁盘占用
du(disk usage)用于统计指定目录或文件的磁盘占用空间,适合定位大文件或目录。
常用参数:
-h:人类可读格式。-s:汇总指定目录的总大小(不显示子目录详情)。--max-depth=N:限制递归深度(如--max-depth=1仅统计一级子目录)。
示例:
du -sh /home/* | sort -hr # 按大小倒序查看用户目录占用
输出解读:
2G /home/user1
800M /home/user2
50M /home/user3
可快速定位占用空间大的用户或目录。
查看硬盘健康状态与物理信息
smartctl:硬盘SMART信息(关键工具)
SMART(Self-Monitoring, Analysis and Reporting Technology)是硬盘的自我监控技术,smartctl来自smartmontools包,用于读取硬盘SMART信息,判断健康状态。
安装(Ubuntu/Debian):

sudo apt install smartmontools
常用参数:
-i:显示设备信息(型号、序列号、固件版本)。-H:显示硬盘健康状态(PASSED正常,FAILED异常)。-a:显示所有SMART信息(包括属性、错误日志)。-x:显示SMART详细信息(包括原始值和阈值)。
示例:
sudo smartctl -H /dev/sda sudo smartctl -a /dev/nvme0n1 | grep -E "Reallocated_Sector_Ct|Current_Pending_Sector"
输出解读:
SMART Health Status: PASSED:硬盘健康状态正常。- 关键属性(机械硬盘):
Reallocated_Sector_Ct(重分配扇区数):大于0表示扇区损坏,需关注。Current_Pending_Sector(当前待重定向扇区数):大于0表示读取错误。Uncorrectable_Error_Cnt(不可纠正错误计数):大于0表示数据丢失风险。
- SSD专属属性:
Wear_Leveling_Count(磨损均衡计数):反映SSD写入寿命,数值越大越接近寿命极限。Available_Reservd_Space(预留空间):剩余预留空间比例,低于10%需更换。
hdparm:获取/设置硬盘参数
hdparm用于查看硬盘的物理参数,如缓存大小、传输模式、是否支持TRIM(对SSD重要)。
示例:
hdparm -I /dev/sda | grep -E "cache|TRIM" # 查看缓存和TRIM支持
输出解读:
* Nominal Media Rotation Rate: 7200:机械硬盘转速(7200RPM)。Device does not support TRIM:不支持TRIM(影响SSD写入性能)。* LBA48 supported:支持LBA48 addressing(突破2TB容量限制)。
通过/sys文件系统查看物理信息
Linux将设备信息暴露在/sys目录下,可直接查看硬盘型号、接口类型等:
cat /sys/block/sda/device/model # 硬盘型号 cat /sys/block/nvme0n1/device/device_type # 接口类型(如NVMe) cat /sys/block/sda/queue/rotational # 是否为旋转介质(1=机械硬盘,0=SSD)
常用命令对比总结
| 命令 | 主要用途 | 常用参数 | 示例场景 |
|---|---|---|---|
lsblk |
查看块设备及分区结构 | -f, -m, -o NAME,SIZE,FSTYPE |
快速了解设备、分区、挂载信息 |
fdisk |
查看/管理MBR/GPT分区表 | -l, 交互模式(p/q) |
查看分区类型、大小、启动标记 |
parted |
高级分区管理(支持大容量) | -l, print(交互模式) |
调整分区大小、查看GPT分区 |
df |
查看已挂载文件系统使用量 | -h, -T, -i |
监控磁盘空间是否不足 |
du |
统计目录/文件占用空间 | -sh, --max-depth=N |
定位大文件、清理磁盘 |
smartctl |
查看硬盘SMART健康状态 | -H, -a, -x |
判断硬盘是否损坏、预测寿命 |
hdparm |
获取硬盘物理参数 | -I, -t(基准测试) |
查看缓存、TRIM支持、转速 |
blkid |
查看块设备属性(UUID/FS类型) | -o value -s UUID |
获取分区UUID用于挂载 |
相关问答FAQs
Q1:Linux中/dev/sda和/dev/nvme0n1有什么区别?如何确认硬盘接口类型?
A:/dev/sda是SCSI/SATA/USB等传统接口硬盘的设备名,而/dev/nvme0n1是NVMe接口的固态硬盘,可通过以下方式确认接口类型:
- 通过设备名判断:
sd前缀通常为SATA/SCSI,nvme前缀为NVMe。 - 通过
lsblk查看拓扑结构:lsblk -t | grep -E "sda|nvme0n1"
输出中
SATA、NVMe等字段直接标注接口类型。 - 通过物理信息判断:
cat /sys/block/sda/device/interface # 可能输出"ata"(SATA)或"scsi" cat /sys/block/nvme0n1/device/device_type # 输出"NVMe"
Q2:如何判断硬盘是否即将损坏?需要关注哪些SMART属性?
A:通过smartctl查看SMART信息,重点关注以下属性(不同硬盘厂商属性名可能略有差异):
- 机械硬盘:
Reallocated_Sector_Ct(重分配扇区数):大于0表示扇区损坏,持续增长需立即更换。Current_Pending_Sector(当前待重定向扇区数):大于0表明存在读取错误。Uncorrectable_Error_Cnt(不可纠正错误计数):大于0可能导致数据丢失。Raw_Read_Error_Rate(原始读取错误率):异常升高表明磁头或盘片问题。
- SSD:
Wear_Leveling_Count(磨损均衡计数):反映SSD写入寿命,数值越大越接近寿命极限(需结合厂商寿命阈值)。Available_Reservd_Space(预留空间):剩余比例低于10%时性能下降,需更换。Media_Wearout_Indicator(媒体磨损指标,部分厂商支持):百分比形式,低于20%需警惕。
操作建议:定期执行sudo smartctl -a /dev/sda | grep -E "(ATTRIBUTE_ID|fail)",若出现FAILING_NOW或Pre-fail属性异常,立即备份数据并更换硬盘。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26283.html