The Problem
NVMe drives don’t show up in the usual df or lsblk health output. Windows has CrystalDiskInfo; on Linux there’s no GUI equivalent installed by default. You need to know if your drive is healthy — especially a large data drive holding important files.
The Solution
smartctl from the smartmontools package reads S.M.A.R.T. data directly from NVMe drives.
sudo dnf install smartmontools
sudo smartctl -a /dev/nvme0n1
Replace nvme0n1 with your device (nvme1n1 for the second NVMe, etc.). Use lsblk to find the right device name.
Key metrics to check in the output:
| Attribute | What it means |
|---|---|
Percentage Used | Drive wear — 0% is new, 100% is at rated lifespan |
Available Spare | Should stay above Available Spare Threshold |
Power On Hours | Total runtime |
Unsafe Shutdowns | Power losses without proper shutdown — high numbers stress the drive |
Media and Data Integrity Errors | Should be 0 |
Critical Warning | Should be 0x00 |
Quick health summary only:
sudo smartctl -H /dev/nvme0n1
Output: SMART overall-health self-assessment test result: PASSED means you’re fine.
List all NVMe devices on the system:
ls /dev/nvme*n1