I've just set up CentOS 7 on a server with NVMe drives, and was suprised not to be able to run smartctl on them:

# smartctl -a /dev/nvme0
/dev/nvme0: Unable to detect device type
Please specify device type with the -d option.

# smartctl -a /dev/nvme0 -d nvme
/dev/nvme0: Unknown device type 'nvme'

Then I noticed that CentOS ships with Smartmontools version 6.2, whereas Smartmontools supports NVMe starting from version 6.5.

How can I upgrade Smartmontools to version 6.5 on CentOS 7?

Their download page only offers Smartmontools 6.2 for CentOS 7.

Ideally, I don't want to compile from source, I would prefer a RPM, or better, a third-party repo that would include the latest Smartmontools, to get regular updates.


I'm also open to suggestions if you know another tool, preferably included in CentOS 7, that could allow me to get SMART info from an NVMe drive.

  • I make my own debs to support the latest FreeRadius...always an alternative making your own packages if need be. – Rui F Ribeiro May 5 '17 at 11:31

OK, I found 2 alternatives.

Getting a precompiled binary that works on CentOS 7

Even though their packages page only offers Smartmontools 6.2 for CentOS 7, their SVN builds page offers binaries that do work on CentOS.

The proper archive has a .linux suffix, for example I chose:


This archive contains a smartctl binary that works like a charm.

Using the nvme command-line tool

CentOS 7 ships with an nvme command (the yum package is named nvme-cli).

It can list the NVMe drives:

# nvme list

And can read SMART info:

# nvme smart-log /dev/nvme0

And additional SMART info (not sure why it's split):

# nvme smart-log-add /dev/nvme0
  • For some reason, my systems require adding intel to the last command: nvme intel smart-log-add /dev/nvme0. – Brian May 4 '18 at 20:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.