My 2017 15" MacBook Pro does not appear to support S.M.A.R.T. on any drive.
Not exactly. It’s more like NVMe is not compatible with S.M.A.R.T. First off, it is a subset of the ATA (AT Attachment) standard for monitoring/reporting and repairing drive failures. There are a number of ATA commands that access the SMART attributes.
To be able to gain access to the SMART attributes on the drive, you need the following:
- supported OS driver
- supported hardware interface.
macOS provides a limited and closed ATA driver. It does not allow you to send SCSI and ATA commands directly to the device (drive). In this case the macOS driver allows you to get some but not all of the SMART attributes. To do so, you need a 3rd party driver that supports getting these extended attributes. DriveDx has this driver.
As for a supported hardware interface this could be either the SATA controller (actually PCIe to SATA bridge) or the SATA controller in a USB interface (USB to SATA bridge). If the SATA controller doesn’t support sending/reading these commands/attributes, you won’t be able to get the SMART information you’re looking for.
However, given that a different machine (FreeNAS box) the included ATA/SCSI driver as well as the USB to SATA bridge supported the SMART attributes.
Smartmontools has an excellent summary page detailing the USB/SMART attribute support: https://www.smartmontools.org/wiki/USB
The OS X SAT SMART Driver provides access to SMART data for SAT, JMicron and Sunplus capable USB and Firewire devices on Mac OS X. On OSX El Capitan (10.11+) you may need a signed driver, which can be downloaded from the DriveDx website. Note that this does not support 48-bit ATA commands (-l xerror) or non-SMART ATA commands (-s apm,N). Full USB support would require SCSI pass-through support which does not yet exist on Mac OS X.
If you notice, macOS doesn’t support the SCSI pass through nor does smartmontools support SCSI. However, you can get USB SMART attributes through the use of a signed driver from DriveDX.
NVMe is a whole different ball of wax. Looking at the specification, there’s nothing about SMART attributes. In fact, it has it’s own definition for Error Reporting and Recovery. So, asking an NVMe drive for attributes it doesn’t even have is obviously not going to work.
smartmontools NVMe support is currently in the “experimental” stage. Once again, support is limited due to driver limitations. After 10.13 (High Sierra), a 3rd party driver is required
Before release 10.13 only Apple-branded NVMe devices were supported, monitoring API is implemented (NVMeSMARTClient) but not documented. Limited NVMe support added in the DriveDx app (commercial, closed source) and in the smartmontools since 6.6 (r4438).
If you’re looking for drive health monitoring, you’ll need 3rd party tools as it hasn’t been implemented in macOS as of yet.