S.M.A.R.T. (Self‑Monitoring, Analysis and Reporting Technology) is built into most modern HDDs and SSD’s. It provides health metrics that help predict hardware failures and track device reliability. On the Raspberry Pi 5, SMART is available when using compatible storage (e.g., SSDs with an M.2 hat), since microSD cards don’t expose SMART data.
Why SMART matters
- Predictive maintenance : Spot failing drives before outages.
- Baseline tracking : Monitor wear levels, temperature, and error counts.
- Integration : JSON/CSV output makes it easy to feed SMART data into monitoring stacks.
1. Installation process.
$ sudo apt update
$ sudo apt install smartmontools2. Usage examples
Scan for devices that support SMART using the “smartctl” utility.
$ sudo smartctl --scan
Output…
/dev/nvme0 -d nvme # /dev/nvme0, NVMe device
3. Usage – Information
Show model, firmware, and capacity details
$ sudo smartctl -i /dev/nvme0Output…
smartctl 7.3 2022-02-28 r5338 [aarch64-linux-6.12.34+rpt-rpi-2712] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Number: BIWIN CE430T5D100-512G
Serial Number: 2446143806412
Firmware Version: 1.4.7.67
PCI Vendor/Subsystem ID: 0x1dee
IEEE OUI Identifier: 0x50c68e
Total NVM Capacity: 512,110,190,592 [512 GB]
Unallocated NVM Capacity: 0
Controller ID: 0
NVMe Version: 1.4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 512,110,190,592 [512 GB]
Namespace 1 Formatted LBA Size: 512
Local Time is: Sat Aug 2 09:07:49 2025 AEST4. Usage – Full Report – All Outputs
Display all available SMART attributes and health data:
$ sudo smartctl --info /dev/nvme0Output…
smartctl 7.3 2022-02-28 r5338 [aarch64-linux-6.12.34+rpt-rpi-2712] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Number: BIWIN CE430T5D100-512G
Serial Number: 2446143806412
Firmware Version: 1.4.7.67
PCI Vendor/Subsystem ID: 0x1dee
IEEE OUI Identifier: 0x50c68e
Total NVM Capacity: 512,110,190,592 [512 GB]
Unallocated NVM Capacity: 0
Controller ID: 0
NVMe Version: 1.4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 512,110,190,592 [512 GB]
Namespace 1 Formatted LBA Size: 512
Local Time is: Sat Aug 2 09:17:08 2025 AEST
Firmware Updates (0x18): 4 Slots, no Reset required
Optional Admin Commands (0x0017): Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0014): DS_Mngmt Sav/Sel_Feat
Log Page Attributes (0x02): Cmd_Eff_Lg
Maximum Data Transfer Size: 32 Pages
Warning Comp. Temp. Threshold: 85 Celsius
Critical Comp. Temp. Threshold: 87 Celsius
Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 3.00W - - 0 0 0 0 100 600
1 + 2.80W - - 1 1 1 1 150 700
2 + 2.70W - - 2 2 2 2 200 1000
3 - 0.2100W - - 3 3 3 3 1000 13000
4 - 0.0090W - - 4 4 4 4 2000 19000
Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 3
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 34 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 0%
Data Units Read: 18,236 [9.33 GB]
Data Units Written: 41,467 [21.2 GB]
Host Read Commands: 139,560
Host Write Commands: 250,759
Controller Busy Time: 0
Power Cycles: 10
Power On Hours: 4
Unsafe Shutdowns: 1
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 1: 40 Celsius
Temperature Sensor 2: 34 Celsius
Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged
5. Usage – Health Checks
Quick overall health assessment:
$ sudo smartctl --health /dev/nvme0Output…
smartctl 7.3 2022-02-28 r5338 [aarch64-linux-6.12.34+rpt-rpi-2712] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED6. Usage – json Output
Export results for dashboards or telemetry pipelines:
$ sudo smartctl --json /dev/nvme0Output…
{
"json_format_version": [
1,
0
],
"smartctl": {
"version": [
7,
3
],
"svn_revision": "5338",
"platform_info": "aarch64-linux-6.12.34+rpt-rpi-2712",
"build_info": "(local build)",
"argv": [
"smartctl",
"--json",
"/dev/nvme0"
],
"exit_status": 0
},
"local_time": {
"time_t": 1754090733,
"asctime": "Sat Aug 2 09:25:33 2025 AEST"
},
"device": {
"name": "/dev/nvme0",
"info_name": "/dev/nvme0",
"type": "nvme",
"protocol": "NVMe"
}
}7. More Information
Check the manual or info pages
$ man smartctl
$ info smartctl8. Links to Other Resources
- man smartctl – Full command reference
- https://www.smartmontools.org/
- pySMART Python wrapper for smartctl – https://pypi.org/project/pySMART/