はじめに
私がこれまで使ってきた環境では、IDE(ATA)接続やSATA(Serial ATA)接続のHDDやSSDばかりでしたが、最近はM.2と呼ばれる新しい比較的新しい規格のSSDが普及してきました。
NVMeはそれほど使ったことが無いため、まずはLinux上でどのように認識されているのかを調べてみよう...ということで、M.2(※NVMe接続)のSSDの型番を調べてみました。
SATA接続のHDDやSSDの場合
- 従来から良く知られている方法ですが、
/cat/proc/scsi/scsi
でSATA接続のHDDやSSD、DVDドライブなどの型番を調べることができます。 - 以下の例だと、WesternDigitalのSATA接続のHDD(WD20EFRX)であることが分かります。
[nkojima@hotaka ~]$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: PBDS Model: DVD+-RW DH-16W1S Rev: 2D14
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD20EFRX-68E Rev: 0A82
Type: Direct-Access ANSI SCSI revision: 05
NVMe接続のSSDの場合
- NVMe接続の場合、
cat /proc/scsi/scsi
では何も表示されません。 - SATA接続ではないため、当たり前なのですが...
- NVMe接続はPCI-Expressを介して接続されているため、もしかして...と思って
lspci
を使ってみたところ、ビンゴでした。 -
lspci
コマンドが使えない時は、pciutils
というパッケージをインストールしてください。 - 以下の例だと、IntelのPro 760pというSSDであることが分かります。
- 正しい名称以外にも、7600pや6100pなど異なる名称も表示されていて、少々分かりにくいです。
[nkojima@akagi ~]$ cat /proc/scsi/scsi
Attached devices:
[nkojima@akagi ~]$ lspci | grep SSD
01:00.0 Non-Volatile memory controller: Intel Corporation SSD Pro 7600p/760p/E 6100p Series (rev 03)
おまけ:Hyper-V上の仮想マシンの場合
- Hyper-V上の仮想マシンの場合は、SATA接続のデバイスが「Virtual Disk」「Virtual DVD-ROM」となっていました。
- 仮想環境なので正しい型番は表示されないだろうと思っていましたが、こういう表記だとは思いませんでした。
[nkojima@vm-ikaho ~]$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: Msft Model: Virtual Disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 00 Lun: 01
Vendor: Msft Model: Virtual DVD-ROM Rev: 1.0
Type: CD-ROM ANSI SCSI revision: 00