想要判断 Linux 下磁盘是固态硬盘(solid-state drive)还是机械硬盘(hard disk),有多种方法。
方法一,cat /sys/block/{fs_name}/queue/rotational
Linux 可以自动判定硬盘是否是 SSD,从 2.6.29 的内核版本之后,可以通过如下命令查看硬盘是不是 ssd:
cat /sys/block/{fs_name}/queue/rotational
其中,{fs_name} 是你的硬盘设备名称,例如 vda、vdb、sda 等等。
若上述命令返回 1 表示机械硬盘(hard disk),若返回 0,则表示固态硬盘(ssd)。
需要注意的是,如果设备是例如 RAID 这样的逻辑设备,上述命令可能不可用。
示例如下:
[deme@Linux ~]$ cat /sys/block/vdb/queue/rotational
1
[deme@Linux ~]$ grep ^ /sys/block/*/queue/rotational
/sys/block/vda/queue/rotational:1
/sys/block/vdb/queue/rotational:1
方法二,利用 lsblk 命令
使用 lsblk 命令进行判断,该命令属于util-linux(一个 Linux 标准软件包)的一部分,参数 -d 表示显示设备名称,参数 -o 表示仅显示特定的列。
[deme@Linux ~]$ lsblk -d -o name,rota
NAME ROTA
vda 1
vdb