All systems operational

Pay with Bitcoin, Monero, USDT & 11 more · email-only sign-up

Storage & RAID

Checking disk health with smartctl and nvme-cli

The few SMART values that matter, how to run a self-test, and when to open a ticket.

5 min readReviewed 25 September 2026

About this guideGuide

Reading time
5 minutes
Written for
Debian 12 and 13, Ubuntu 24.04 and 26.04RHEL-family differences flagged in the text
Last reviewed
25 September 2026

NVMe drives

$ apt install nvme-cli smartmontools
$ nvme smart-log /dev/nvme0
  • critical_warning should be 0.
  • percentage_used is the wear indicator; datacenter drives are rated for heavy writes, but watch the trend.
  • media_errors should stay at 0.
  • available_spare should stay above its threshold.

Hard drives

$ smartctl -a /dev/sda

Watch four attributes: Reallocated_Sector_Ct, Current_Pending_Sector, Offline_Uncorrectable (all ideally 0) and UDMA_CRC_Error_Count (a rising value points to a cable or backplane).

Run a self-test

$ smartctl -t long /dev/sda          # hours on large drives
$ smartctl -l selftest /dev/sda      # read the result later

When to open a ticket

Any failed self-test, a non-zero critical warning, growing reallocated or pending sectors, or a drive dropping out of an array. Include the smartctl or nvme smart-log output: it lets us swap the drive within 2 hours without further diagnosis.