When using smartctl from smartmontools make sure you are running the command as root on POSIX systems or with an elevated command prompt on Windows, otherwise you will get the confusing message:
Probable ATA device behind a SAT layer Try an additional '-d ata' or '-d sat' argument.
As far as I know, there is no way to use smartctl as not root. It uses syscalls which require elevated privileges.
The most common use of smartctl is:
sudo smartctl -a /dev/sda
sudo smartctl -x /dev/sda
Where -a Prints all SMART information and -x prints all SMART and non-SMART drive information
Other caveats of smartctl:
- Smartctl returncode is a bitmask. See EXIT STATUS in man smartctl
- Setting -Tverypermissive changes the returncode types and may return generic dummy data. It will not give you an error even if you feed it a text file path instead of a drive path. This is a bad solution to the above problem.
- If compiling for Linux, you must run ./configure --with-nvme-devicescan to get full NVMe support
- It uses unix device paths even on Windows. /dev/sda points to PhysicalDrive0, /dev/sdb points to PhysicalDrive1, and so on.