方法一:

磁盘的旋转情况,可以通过查看 rotational 来获知结果。
因此可以通过查看 rotational 来判断 Linux 磁盘是 HDD 还是 SSD 。

比如对于 sda 这个设备,可以通过 cat /sys/block/sda/queue/rotational 得到结果:

  1. cat /sys/block/nvme0n1/queue/rotational
  2. 0

1 :表示磁盘可旋转, 是 HDD
0 :表示磁盘不可以旋转 , 是 SSD

这种方法有个问题,那就是/sys/block/下面不只有硬盘,还可能有别的块设备,它们都在干扰你的判断。

方法二:

使用lsblk命令进行判断,参数-d表示显示设备名称,参数-o表示仅显示特定的列。

  1. lsblk -d -o name,rota
  2. NAME ROTA
  3. loop0 0
  4. loop1 0
  5. loop2 0
  6. loop3 0
  7. loop4 0
  8. loop5 0
  9. nvme0n1 0

注意这个判断仅适用于物理机器,虚拟机好像不太适用