How to read SMART drive health status of Samsung Portable SSD T7 Shield (and compile smartmontools 7.4)

Written by - 0 comments

Published on - Listed in Hardware Linux


One of the first things I do before using a new external drive is to look at its status and internal drive information. The smartctl command from the smartmontools package is perfect for this and works on all internal drives and on most external drives.

Reading SMART data from external drives

For external drives there's sometimes a workaround necessary by telling smartctl which device type or USB bridge the external drive is using. For example the ADATA SP550 external drive I need to append -d sat:

ck@mintp ~ $ sudo smartctl -i /dev/sdd -d sat
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.15.0-89-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Silicon Motion based SSDs
Device Model:     ADATA SP550
Serial Number:    [hidden]
Firmware Version: P0705AB
User Capacity:    240’057’409’536 bytes [240 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Nov 25 12:04:22 2023 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Depending on the drive, there are other options, such as usbprofilic, usbjmicron and more - again, depending on the internal USB bridge to connect the external drive via USB to the computer:

ck@mintp ~ $ smartctl --help|awk '/-d TYPE/,/-T TYPE/'
  -d TYPE, --device=TYPE
         Specify device type to one of:
         ata, scsi[+TYPE], nvme[,NSID], sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbprolific, usbsunplus, sntjmicron[,NSID], intelliprop,N[+TYPE], jmb39x,N[,sLBA][,force][+TYPE], marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, cciss,N, auto, test

  -T TYPE, --tolerance=TYPE                                           (ATA)

No information for Samsung Portable SSD T7 Shield

Samsung Portable SSD T7 Shield

But reading data from the newly purchased Samsung Portable SSD T7 Shield drive didn't seem to work. dmesg detected the drive as /dev/sde on my machine:

[ 3431.081250] usb 4-2.1.1.3: new SuperSpeed USB device number 7 using xhci_hcd
[ 3431.100992] usb 4-2.1.1.3: New USB device found, idVendor=04e8, idProduct=61fb, bcdDevice= 1.00
[ 3431.101000] usb 4-2.1.1.3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 3431.101003] usb 4-2.1.1.3: Product: PSSD T7 Shield
[ 3431.101005] usb 4-2.1.1.3: Manufacturer: Samsung
[ 3431.101007] usb 4-2.1.1.3: SerialNumber: [hidden]
[ 3431.103510] scsi host7: uas
[ 3431.104019] scsi 7:0:0:0: Direct-Access     Samsung  PSSD T7 Shield   0    PQ: 0 ANSI: 6
[ 3431.104643] sd 7:0:0:0: Attached scsi generic sg4 type 0
[ 3431.105125] sd 7:0:0:0: [sde] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 3431.105201] sd 7:0:0:0: [sde] Write Protect is off
[ 3431.105203] sd 7:0:0:0: [sde] Mode Sense: 43 00 00 00
[ 3431.105360] sd 7:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3431.105598] sd 7:0:0:0: [sde] Optimal transfer size 33553920 bytes
[ 3431.107292]  sde: sde1
[ 3431.108181] sd 7:0:0:0: [sde] Attached SCSI disk

But no matter what device type I used with smartcl, I couldn't get the drive's information and SMART attributes. The closest I got to was using -d scsi after finding a hint on a smartmontools issue:

ck@mintp ~ $ sudo smartctl -a /dev/sde -d scsi
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.15.0-89-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               Samsung
Product:              PSSD T7 Shield
Revision:             0
Compliance:           SPC-4
User Capacity:        1’000’204’886’016 bytes [1.00 TB]
Logical block size:   512 bytes
LU is fully provisioned
Rotation Rate:        Solid State Device
Logical Unit id:      0x5000000000000001
Serial number:        Z286209W0SNGY6S
Device type:          disk
Local Time is:        Sat Nov 25 11:51:37 2023 CET
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Disabled or Not Supported

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Current Drive Temperature:     0 C
Drive Trip Temperature:        0 C

Error Counter logging not supported

Device does not support Self Test logging

But besides a temperature (which just shows a steady 0 - so not really working) there are no SMART attributes showing up. 

Compiling newest smartctl 7.4

According to research and information from smartmontools issue #1221, the Samsung PSSD T7 Shield uses the ASMedia ASM2362 USB to NVMe bridge. Support for this bridge was added in smartmontools 7.3 by adding a new device type -d sntasmedia.

But my machine (Linux Mint 20.3 - yes, I should upgrade, I know) is currently still using smartcl 7.1. But no biggy, let's download and compile the newest smartmontools to see and find out. As I'm writing this article, the current release is 7.4.

ck@mintp ~/build $ wget https://github.com/smartmontools/smartmontools/releases/download/RELEASE_7_4/smartmontools-7.4.tar.gz
ck@mintp ~/build $ cd smartmontools-7.4/
ck@mintp ~/build/smartmontools-7.4 $ ./configure
ck@mintp ~/build/smartmontools-7.4 $ make

This creates the binary programs, such as smartctl, in the same directory and can be executed right away.

ck@mintp ~/build/smartmontools-7.4 $ ./smartctl --version
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-5.15.0-89-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

smartctl comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
the terms of the GNU General Public License; either
version 2, or (at your option) any later version.
See https://www.gnu.org for further details.

smartmontools release 7.4 dated 2023-08-01 at 10:59:45 UTC
smartmontools SVN rev 5530 dated 2023-08-01 at 11:00:21
smartmontools build host: x86_64-pc-linux-gnu
smartmontools build with: C++11, GCC 9.4.0
smartmontools configure arguments: [no arguments given]

Let's see if the --scan option detects something new:

ck@mintp ~/build/smartmontools-7.4 $ ./smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device
/dev/sdc -d scsi # /dev/sdc, SCSI device
/dev/sde -d sntasmedia # /dev/sde [USB NVMe ASMedia], NVMe device

Oh hey, speaking of which, we got the Samsung drive showing up! And the information even shows what device type to use: -d sntasmedia. Let's try and find out:

ck@mintp ~/build/smartmontools-7.4 $ sudo ./smartctl -a /dev/sde -d sntasmedia
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-5.15.0-89-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung Portable SSD T7 Shield
Serial Number:                      [hidden]
Firmware Version:                   FXI72P2Q
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 1’000’204’886’016 [1.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      5
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1’000’204’886’016 [1.00 TB]
Namespace 1 Utilization:            1’165’221’888 [1.16 GB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Sat Nov 25 11:59:10 2023 CET
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0007):   Security Format Frmw_DL
Optional NVM Commands (0x001d):     Comp DS_Mngmt Wr_Zero Sav/Sel_Feat
Log Page Attributes (0x0f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     79 Celsius
Critical Comp. Temp. Threshold:     84 Celsius
Namespace 1 Features (0x10):        NP_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     4.83W       -        -    0  0  0  0        0       0
 1 +     3.54W       -        -    1  1  1  1        0       0
 2 +     3.04W       -        -    2  2  2  2        0     500
 3 -   0.0500W       -        -    3  3  3  3      210    1200

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        28 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    5 [2.56 MB]
Data Units Written:                 0
Host Read Commands:                 79
Host Write Commands:                0
Controller Busy Time:               0
Power Cycles:                       1
Power On Hours:                     0
Unsafe Shutdowns:                   0
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               28 Celsius
Temperature Sensor 2:               37 Celsius

Warning: NVMe Get Log truncated to 0x200 bytes, 0x200 bytes zero filled
Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged

Self-tests not supported

What a difference! We can now see the NVMe SMART attributes, including (working) temperatures! Yay!


Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.

RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   OpenSearch   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder