LinuxでディスクがSSDかHDDかを判断するいくつかの方法


環境の紹介
Fedora release 25 (Twenty Five)
判断方法
方法1cat /sys/block/*/queue/rotationalの戻り値(うち*はあなたのハードディスクデバイス名、例えばsdaなど)を判断し、1を返すとディスクが回転可能であることを示すと、HDDとなる.逆に、0に戻ると、ディスクが回転できないことを示すと、SSDである可能性があります.
[cheshi@cheshi-laptop2 ~]$ cat /sys/block/nvme0n1/queue/rotational
0
[cheshi@cheshi-laptop2 ~]$ grep ^ /sys/block/*/queue/rotational
/sys/block/dm-0/queue/rotational:0
/sys/block/dm-1/queue/rotational:0
/sys/block/dm-2/queue/rotational:0
/sys/block/nvme0n1/queue/rotational:0
/sys/block/sda/queue/rotational:1
[cheshi@cheshi-laptop2 ~]$

この方法には問題があります.それは/sys/block/の下にハードディスクだけでなく、他のブロックデバイスがある可能性があります.それらはあなたの判断を妨害しています.
方法2lsblkコマンドを用いて判断し、パラメータ-dは表示装置名、パラメータ-oは特定の列のみを表示することを示す.
[cheshi@cheshi-laptop2 ~]$ lsblk -d -o name,rota
NAME    ROTA
nvme0n1    0
[cheshi@cheshi-laptop2 ~]$

この方法の利点は、あなたが見たい内容だけをリストして、結果が簡潔で明瞭であることです.やはりそのルールで、ROTA1の表示で回転可能で、逆に回転できません.
方法3fdiskコマンドで確認できます.パラメータ-lは、ディスクの詳細がリストされていることを示します.出力結果では、Disk行でディスク概要を表し、以下に詳細なパラメータを示します.これらのパラメータでは、「heads」(ヘッド)、「track」(トラック)、「cylinders」(柱面)など、HDD特有のキーワードを探してみましょう.
以下に、HDDとSSDの出力結果を示し、HDDはネットワークからコピーされる.
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00074f7d
[cheshi@cheshi-laptop2 ~]$ sudo fdisk -l
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xad91c214
......
[cheshi@cheshi-laptop2 ~]$

その他の方法smartctlなどのサードパーティ製ツールを使用して判断できます.これらのツールの結果は比較的直感的ですが、個別にインストールする必要があります.
参考文献
https://unix.stackexchange.com/questions/65595/how-to-know-if-a-disk-is-an-ssd-or-an-hdd