LinuxでディスクがSSDかHDDかを確認する方法

Linux系で使用しているディスクがSSDかHDDかを確認する方法です。

サーバ納品書などあればサクッと確認できますが、そんなもの保存しているわけないじゃないか。

SSDかHDDかを確認する

SSDかHDDかを確認する場合は/sys/blockにあるrotationalを確認します。

SSDは0が返る

SSDの場合は0が返ります。

# cat /sys/block/sda/queue/rotational
0

HDDは1が返る

HDDの場合は1が返ります。

# cat /sys/block/sda/queue/rotational
1

本当か?

疑り深い性格なもので、本当かどうか確かめたいと思います。

smartでディスクのモデル番号を取得してネットで調べてディスクがSSDかHDDかを確認します。

SSDの調査

# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 223.6G  0 disk
├sda1            8:1    0     1G  0 part /boot
└sda2            8:2    0 222.6G  0 part
  ├centos-root 253:0    0 214.6G  0 lvm  /
  └centos-swap 253:1    0     8G  0 lvm  [SWAP]
sr0              11:0    1  1024M  0 rom

まずはlsblkでデバイス名を調べます。

diskのデバイス名はsdaであることがわかります。

# smartctl -a /dev/sda
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-229.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs
Device Model:     CT240BX500SSD1
Serial Number:    X18999
LU WWN Device Id: 0 000000 000000000
Firmware Version: M6CR013
User Capacity:    240,057,409,536 bytes [240 GB]
~

次にsmartctlでディスクの情報を調べます。

Model FamilyにSSDsがあるのでSSDだと思いますが、一応モデルを確認します。

モデルが「CT240BX500SSD1」なので、これをネットで検索します。

間違いなくSSDであることがわかります。

# cat /sys/block/sda/queue/rotational
0

これで、sdaがSSDの場合はrotationalが0になることがわかりました。

HDDの調査

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 298.1G  0 disk
├sda1   8:1    0   512M  0 part /boot
├sda2   8:2    0     4G  0 part [SWAP]
└sda3   8:3    0 293.6G  0 part /
sr0     11:0    1  1024M  0 rom

まずはlsblkでデバイス名を調べます。

diskのデバイス名はsdaであることがわかります。

# smartctl -a /dev/sda
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-327.36.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.10
Device Model:     ST3320620AS
Serial Number:    ABCDEFG
Firmware Version: 3.ADJ
User Capacity:    320,072,933,376 bytes [320 GB]
~

次にsmartctlでディスクの情報を調べます。

モデルが「ST3320620AS」なので、これをネットで検索します。

間違いなくHDDであることがわかります。

# cat /sys/block/sda/queue/rotational
1

これで、sdaがHDDの場合はrotationalが1になることがわかりました。

まとめ

Linux系でSSDかHDDかを判定する場合はrotationalを確認します。

0ならSSDで1ならHDDです。

smart情報でモデル番号などを確認するのが確実ですが、rotationalならサクッと確認できます。

関連記事
最新記事