在 CentOS 系统中,判断磁盘是机械硬盘(HDD)还是固态硬盘(SSD)可以通过以下多种方法实现,以下是具体操作步骤及原理说明:
一、通过 /sys
文件系统(推荐)
1. 查看 rotational
文件
每个磁盘设备在 /sys/block/
目录下对应一个子目录(如 sda
、nvme0n1
),其 queue/rotational
文件的值直接表明磁盘类型:
bash
cat /sys/block/sda/queue/rotational
-
**输出
0
**:表示 SSD(固态硬盘) -
**输出
1
**:表示 HDD(机械硬盘)
批量查看所有磁盘:
bash
grep -r ^0 /sys/block/*/queue/rotational # 列出所有 SSD
grep -r ^1 /sys/block/*/queue/rotational # 列出所有 HDD
二、使用 lsblk
命令
lsblk
命令可显示磁盘属性,结合 -d -o rota
参数直接查看旋转状态:
bash
lsblk -d -o NAME,ROTA
-
**
ROTA=0
**:SSD -
**
ROTA=1
**:HDD
示例输出:
bash
NAME ROTA
sda 0
nvme0n1 0
sdb 1
三、通过 smartctl
工具(需安装)
smartctl
是 SMART(自我监测与分析技术)工具,可读取硬盘详细信息:
-
安装工具:
bashsudo yum install smartmontools # CentOS 7/8
-
查看旋转速率:
bashsudo smartctl -i /dev/sda | grep "Rotation Rate"
-
SSD 输出:
Solid State Device
-
HDD 输出:
XXX RPM
(如7200 RPM
)
-
四、使用 hdparm
命令
hdparm
可查询硬盘参数,通过 Nominal Media Rotation Rate
判断:
bash
sudo hdparm -I /dev/sda | grep "Nominal Media Rotation Rate"
-
SSD 输出:
Solid State Device
-
HDD 输出:
XXX RPM
(如5400 RPM
)
五、通过 lshw
命令(需安装)
lshw
可列出硬件信息,包含磁盘类型描述:
-
安装工具:
bashsudo yum install lshw
-
查看磁盘信息:
bashsudo lshw -class disk | grep -A 5 "description"
-
SSD 描述通常包含
SSD
或Solid State
-
HDD 描述通常包含
HDD
或Mechanical
-
六、其他方法
1. 查看 /proc/partitions
通过分区表间接判断(需结合其他命令):
bash
cat /proc/partitions
2. 使用 fdisk
查看型号
bash
sudo fdisk -l /dev/sda | grep "Disk model"
-
SSD 型号可能包含
SSD
、NVMe
等关键词 -
HDD 型号通常包含
ST
(希捷)、WD
(西数)等厂商标识
总结与建议
方法 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
/sys/block/rotational |
无需安装工具,直接读取 | 需已知设备名称(如 sda ) |
快速检查单个磁盘 |
lsblk -d -o ROTA |
一行命令显示所有磁盘信息 | 依赖 util-linux 包 |
批量查看多磁盘 |
smartctl |
信息全面(含健康状态) | 需安装工具 | 详细诊断硬盘状态 |
hdparm |
支持更多参数查询 | 需安装工具 | 高级用户调试 |
推荐优先使用 lsblk
或 /sys
方法 ,简单高效。若需进一步确认硬盘健康状态,可结合 smartctl
进行分析。