linux如何区分磁盘类型
linux如何区分磁盘类型详细介绍
在 Linux 系统中,可以通过多种方式区分磁盘类型(如 HDD、SSD、NVMe 等),以下是常用方法:
1. 通过 lsblk 命令(推荐)
lsblk 可显示块设备信息,其中 rota 字段表示是否为旋转磁盘(HDD):
rota=1:旋转磁盘(HDD,机械硬盘)rota=0:非旋转磁盘(SSD,固态硬盘)
bash
lsblk NAME,SIZE,ROTA,TYPE,MOUNTPOINT
- 说明:
TYPE=disk表示物理磁盘,part表示分区。nvme0n1通常为 NVMe SSD(名称以nvme开头),sda等以sd开头的可能是 HDD 或 SATA SSD,需结合ROTA判断。
2. 通过 /sys 系统文件(底层方法)
每个磁盘设备在 /sys/class/block/ 下有对应的目录,其中 queue/rotational 文件的值表示是否为旋转磁盘:
0:非旋转磁盘(SSD)1:旋转磁盘(HDD)
bash
/sys/class/block/sda/queue/rotational
3. 通过 smartctl 命令(详细信息)
smartctl 可查询磁盘的 SMART 信息,直接显示是否为 SSD(需安装 smartmontools 包):
bash
smartctl /dev/sda
4. 通过设备名称前缀快速判断
磁盘类型通常与设备名称前缀相关:
| 设备前缀 | 类型 | 示例 |
|---|---|---|
nvme |
NVMe SSD | /dev/nvme0n1 |
sd |
SATA/SCSI 设备 | /dev/sda(可能是 HDD 或 SATA SSD,需结合 ROTA) |
mmcblk |
移动存储(SD 卡等) | /dev/mmcblk0 |
vd |
虚拟磁盘(如虚拟机磁盘) | /dev/vda |
5. 通过 dmesg 查看启动日志
系统启动时会输出磁盘硬件信息,包含类型描述:
bash
6. 通过 udisksctl 命令(图形化工具底层接口)
udisksctl 可获取磁盘的详细属性,包括是否为固态设备:
bash
udisksctl info /dev/sda
总结
- 快速区分 HDD/SSD:优先使用
lsblk -o ROTA或查看/sys/class/block/<device>/queue/rotational。 - 区分接口类型(如 NVMe/SATA):通过设备名称前缀(
nvme/sd)或dmesg日志。 - 获取详细信息:使用
smartctl或udisksctl,适合需要确认设备类型的场景。
注意:部分老旧系统或特殊设备可能需要管理员权限(sudo),且 SATA 接口的 SSD 设备名称仍为 sd*,需通过 ROTA=0 进一步确认。