在 Linux 下查看磁盘转速(RPM),最可靠的方式是通过 SMART 信息或 ATA IDENTIFY 数据获取。以下是几种常用方法:

方法一:使用 smartctl(最推荐,结果最准确)
smartmontools 包中的 smartctl 命令会直接读取硬盘的 Rotation Rate 字段,输出信息最清晰:
smartctl -a /dev/sda 或 smartctl -x /dev/sda
在输出内容中查找如下字段:
Rotation Rate: 7200 rpm
如果是固态硬盘,则会显示 Rotation Rate: 0 rpm(或 Solid State Device)。安装方式:apt install smartmontools(Debian/Ubuntu)、yum install smartmontools(RHEL/CentOS)。
方法二:使用 hdparm
hdparm 通过 ATA IDENTIFY 命令读取硬盘参数,部分版本会输出转速信息:
hdparm -I /dev/sda
在输出中查找 Rotation Rate 字段。需要注意的是,hdparm 主要适用于 SATA/PATA 硬盘,对 SAS/SCSI 硬盘支持有限,且并非所有版本都会显示转速。
方法三:通过 sysfs 或 lsblk 判断是否为机械盘
查看 rotational 标志位可以判断硬盘是机械盘还是固态盘,但无法获取具体转速数值:
cat /sys/block/sda/queue/rotational
或使用 lsblk 命令:
lsblk -d -o NAME,ROTA,SIZE,MODEL
返回值为 1 表示机械硬盘(HDD),返回值为 0 表示固态硬盘(SSD)。该标志位源于内核的 block device queue 属性,不代表实际 RPM 数值。
方法四:使用 inxi 工具
inxi 是一款功能强大的硬件信息收集工具,可以直接汇总显示硬盘转速:
inxi -D 或 inxi -d
其输出中的 rot(rotation)字段即为转速,例如 rot: 7200 rpm。安装方式:apt install inxi 或通过源码安装。
注意事项
1、上述命令通常需要 root 权限 或通过 sudo 执行,否则可能因权限不足而无法读取硬件信息。
2、转速信息来源于硬盘自身的 固件描述,若硬盘为固态硬盘、NVMe 设备或控制器做了硬件 RAID 封装,则可能无法获取有效转速(显示为 0 rpm 或无该字段)。
3、对于 NVMe SSD,其不存在机械结构,因此没有转速概念,可使用 nvme list 或 nvme smart-log /dev/nvme0 查看设备信息。
4、若硬盘位于 RAID 卡(如 MegaRAID)后端,需借助厂商工具(如 storcli、MegaCli)映射出物理设备后再用 smartctl 查询。
总结:获取精确转速首选 smartctl -a /dev/sdX,辅助判断磁盘类型可用 lsblk 或 /sys/block/sdX/queue/rotational。

查看详情

查看详情