Your Drive Is Terrified to Erase β Every Cycle Costs Voltage and Lifespan
Check your driveβs health, measure its hidden wear, recover deleted files, nuke data for real, and simulate SSD internals β all free or dirt cheap.
Your SSD tracks its own death toll β every write, every erase, every degraded cell β and itβll show you the numbers if you ask. The tools to read this data, measure write amplification, recover βdeletedβ files, actually wipe a drive for real, and even simulate how an SSD controller works internally are all either free or absurdly cheap. This is the complete hands-on toolkit β no theory, just βinstall this, run this, see this.β
Pairs with the SSD P/E Cycle Paradox post β that one explains the physics, this one gives you the damn tools.
π©Ί See Your SSD's Death Countdown β Health Monitoring Tools
Think of SMART data as your SSDβs medical chart. Every drive constantly tracks its own temperature, total data written, remaining lifespan, error count, and wear level. These tools just read that chart.
The 5-Minute Setup (any skill level):
| Tool | Platform | Cost | What You See | Get It |
|---|---|---|---|---|
| CrystalDiskInfo | Windows | Free | Color-coded health, temperature, TBW, wear %, all SMART attributes with trend graphs | crystalmark.info |
| GSmartControl | Win/Mac/Linux | Free | GUI wrapper for smartmontools β highlights anomalies, shows all SMART data | gsmartcontrol.shaduri.dev |
| Samsung Magician | Win/Mac | Free | TBW, remaining life, temp, performance benchmarks, secure erase, over-provisioning config (Samsung only) | samsung.com |
| SanDisk Dashboard | Windows | Free | Same deal for WD/SanDisk drives β health, firmware updates, secure erase | sandisk.com |
| Crucial Storage Executive | Windows | Free | Crucial/Micron drives β health, firmware, over-provisioning, momentum cache | crucial.com |
| Kingston SSD Manager | Windows | Free | Kingston drives β health, firmware, secure erase | kingston.com |
The βI Know Linuxβ Path:
Install smartmontools (sudo apt install smartmontools) and run:
sudo smartctl -a /dev/nvme0
Boom β complete health dump of any SATA or NVMe drive. Works on Linux, macOS, Windows, FreeBSD. Add -j for JSON output if you want to pipe it into scripts.
The βI Want a Dashboardβ Path:
| Tool | What It Does | Setup Difficulty | Link |
|---|---|---|---|
| Scrutiny | Web dashboard that merges SMART data with Backblaze real-world failure rates. Historical trends. Docker deployment. | Medium (Docker) | GitHub |
| Scrutiny Fork (Starosdev) | Adds FIO benchmarking, scheduled reports, Home Assistant integration | Medium | GitHub |
| smartctl_exporter | Prometheus exporter for SMART metrics β pair with Grafana dashboards (IDs 22604, 16514) | Medium-Hard | GitHub |
The βOne Commandβ Tools:
| Tool | Platform | What It Does | Link |
|---|---|---|---|
| ssd-health-cli | Linux | Single command, color-coded SSD health output | GitHub |
| macos-ssd-monitor | macOS (Apple Silicon) | Interactive dashboard, SMART analysis, CSV trend tracking | GitHub |
| DiskHealth | Windows (PowerShell) | WPF GUI popup with color-coded health per drive | GitHub |
Zero-install Windows check β open PowerShell and run:
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select DeviceID, Wear, Temperature, WriteErrorsTotal
No downloads. Built into Windows 10+. Shows wear percentage right now.
π Measure Your SSD's Write Amplification β See the Hidden Wear
Write amplification is the ratio of βshit your SSD actually writes to NANDβ divided by βshit you asked it to write.β A WAF of 3.0 means your drive is doing 3Γ the work behind your back. Directly shortens lifespan.
The math: WAF = NAND Writes Γ· Host Writes
Getting the numbers:
For NVMe drives:
sudo nvme smart-log /dev/nvme0 # Shows "Data Units Written" (host writes)
sudo nvme ocp smart-add-log /dev/nvme0 # Shows "Physical media units written" (NAND writes)
For SATA drives β check SMART attributes:
- Samsung: F1 (host writes) vs F9 (NAND writes)
- Crucial/Micron: Attribute 247 vs 248
sudo smartctl -A /dev/sdX
Tools that do the math for you:
| Tool | What It Does | Link |
|---|---|---|
| SSDWriteAmplification | Records SMART before/after workloads, calculates WAF across file systems automatically | GitHub |
| FIO | Industry-standard I/O benchmark β run a workload, compare SMART counters before/after | GitHub |
| WintelGuy SSD Calculator | Web tool β enter TBW rating + daily writes β estimates remaining lifespan | wintelguy.com |
Fastest WAF experiment:
# Step 1: Record SMART counters
sudo smartctl -A /dev/sdX > before.txt
# Step 2: Run random writes for 5 minutes
fio --name=test --filename=/dev/sdX --size=10G --rw=randwrite --bs=4k --direct=1 --runtime=300 --time_based
# Step 3: Record again
sudo smartctl -A /dev/sdX > after.txt
# Step 4: Compare host writes vs NAND writes β the ratio is your WAF
π Recover β» Deleted β» Files β The Honest Truth + Working Tools
Letβs be real: after TRIM + garbage collection runs, your deleted data is gone. Forever. No tool on Earth recovers it. That typically happens within minutes on a modern OS.
But recovery IS possible when:
- You act within seconds (before GC runs)
- TRIM is disabled or broken
- The SSD was in a USB enclosure (many adapters donβt pass TRIM)
- The SSD was in a RAID array (most hardware RAID controllers block TRIM)
- The drive was powered off immediately after deletion
Recovery tools ranked by βjust fucking worksβ:
| Tool | Cost | Platform | Free Tier | Best For | Link |
|---|---|---|---|---|---|
| Recuva | Free / $25 Pro | Windows | Full recovery | Quick βI just deleted thisβ moments | ccleaner.com |
| PhotoRec + TestDisk | Free | All | Full | Raw file carving (no filenames), lost partition recovery | GitHub |
| EaseUS Data Recovery | $70-$150 | Win/Mac | 2 GB free | Best beginner UI by far | easeus.com |
| Disk Drill | $90 | Win/Mac | 500 MB free | Recovery Vault β proactively protects files BEFORE deletion | cleverfiles.com |
| R-Studio | $50+ | All | Preview only | Professional grade, brutally honest about SSD limits | r-studio.com |
The pro move for SSD recovery: Connect your SSD via a basic USB-to-SATA adapter (not the driveβs original SATA port). Older BOT-protocol USB adapters donβt pass TRIM commands β meaning your βdeletedβ data is still sitting there untouched while you scan. This is a legitimate forensic technique.
Forensic-grade tools (advanced):
| Tool | What It Does | Link |
|---|---|---|
| Autopsy/SleuthKit | Most comprehensive open-source forensic platform β file carving, timeline analysis, keyword search | GitHub |
| bulk_extractor | Extracts emails, URLs, credit card numbers, and artifacts from raw disk images | GitHub |
| GNU ddrescue | Images failing/damaged drives β essential first step before any recovery attempt | gnu.org |
π Actually Nuke Your Data β Secure Erasure That Works
βFormatβ on an SSD does almost nothing β your data is still in the silicon. βDeleteβ is even more useless. DBAN? Designed for HDDs in 2015. Doesnβt work on SSDs at all.
What actually works, ranked by thoroughness:
| Method | Erases User Data | Hidden OP Area | Spare/Retired Blocks | Difficulty |
|---|---|---|---|---|
| Regular delete/format | Easy but useless | |||
| Software overwrite (dd, shred) | Easy but incomplete | |||
| Manufacturer Secure Erase (Samsung Magician, etc.) | Varies | Easy β just click the button | ||
| NVMe Sanitize Block Erase | Medium (needs nvme-cli) | |||
| Crypto Erase | Easy β destroys encryption key in ~1 second |
*Data physically there but cryptographically garbage without the key.
Easiest path by drive brand:
| Brand | Tool | Secure Erase Option | Link |
|---|---|---|---|
| Samsung | Samsung Magician | Data Management β Secure Erase | samsung.com |
| WD/SanDisk | SanDisk Dashboard | Tools β Sanitize | sandisk.com |
| Crucial/Micron | Storage Executive | Sanitize Drive | crucial.com |
| Kingston | Kingston SSD Manager | Security β Secure Erase | kingston.com |
| Any NVMe (Linux) | nvme-cli | sudo nvme sanitize -a 2 /dev/nvme0 |
GitHub |
| Any SATA (Linux) | hdparm | sudo hdparm --security-erase NULL /dev/sdX |
Built into Linux |
| Any (GUI) | Parted Magic ($49/yr) | Bootable USB β Secure Erase wizard | partedmagic.com |
| Any (free GUI) | ShredOS | Bootable USB β hdparm/nvme-cli via Alt+F2 | GitHub |
If youβre selling or giving away an SSD: Run Secure Erase through your manufacturerβs tool. Takes 2 minutes. Studies have found peopleβs bank statements, photos, and passwords on used SSDs bought from eBay. Donβt be that person.
π¬ See TRIM in Action + Simulate SSD Internals
This is the fun shit. You can actually watch your SSD erase deleted data in real-time, simulate how an FTL maps pages to blocks, and see garbage collection happening.
Verify TRIM is actually working on your drive:
| Tool | Platform | What It Does | Link |
|---|---|---|---|
| trimcheck | Windows | Write data β delete β wait β check if TRIM erased it. Dead simple. | GitHub |
Run it, wait a few minutes, run it again. If TRIM is working, the data is gone. If itβs not β your βdeletedβ files are still sitting there.
Simulate an SSD controller (no hardware needed):
| Simulator | Difficulty | What You Learn | Link |
|---|---|---|---|
| simpleFTL | Easy (Python) | How page/block mapping works β run ./ftl.py and watch logical-to-physical address translation |
GitHub |
| FTLSim | Easy (Python) | Configurable NAND parameters, trace-driven simulation | GitHub |
| VSSIM | Medium (QEMU) | Has a GUI that shows real-time SSD operations β closest to βwatching garbage collection happenβ | GitHub |
| WiscSee | Medium | Models FTL, GC, wear leveling β produces βzombie curvesβ showing GC overhead | GitHub |
| MQSim | Medium-Hard | Modern NVMe multi-queue simulation from CMU β configurable XML, detailed stats | GitHub |
| FEMU | Hard (KVM) | Full NVMe SSD emulator β exposes virtual SSD to a real Linux VM as a block device | GitHub |
| SimpleSSD | Hard | Educational SSD simulator from KAIST β models complete internals including power | GitHub |
Fastest βholy shit I can see how this worksβ moment: Install Python, clone simpleFTL, run ./ftl.py 1 8 512 128 traces/page_GC. Watch the FTL map logical addresses to physical NAND pages. When garbage collection triggers, youβll see it copy valid pages and erase blocks β the exact process described in the companion post.
π Scripts You Can Run Right Now β Python, Bash, PowerShell
Python β 3 lines to check any driveβs health:
from pySMART import Device
sda = Device('/dev/sda') # or Device('0') on Windows
print(sda.assessment, sda.temperature, sda.attributes)
Install: pip install pySMART β requires smartmontools installed. Works on Linux, Windows, FreeBSD. Maintained by the TrueNAS team: GitHub
Bash β automated SSD monitoring cron job:
Parse smartctl output, check critical attributes (wear level, temp, reallocated sectors), log to file, email alerts on thresholds. Full working script + tutorial: linuxbash.sh
PowerShell β zero-install Windows health check:
Get-PhysicalDisk | Get-StorageReliabilityCounter | Format-Table DeviceID, Wear, Temperature, WriteErrorsTotal, ReadErrorsTotal -AutoSize
More scripts:
| Script | What It Does | Link |
|---|---|---|
| check_ssd_life | Nagios/monitoring plugin β reports SSD life % with configurable warning thresholds | GitHub |
| pySMART-exporter | Prometheus exporter for all SMART metrics | GitHub |
| S.M.A.R.T Prometheus monitoring | Node exporter text collector + Grafana dashboard (ID 10530) | GitHub |
| m1_ssd_tbw | Apple Silicon SSD wear measurement | GitHub |
π Learn SSD Internals From Scratch β No Background Needed
| Resource | Format | What It Teaches | Link |
|---|---|---|---|
| flashdba.com βUnderstanding Flashβ series | Blog (6 parts) | Blocks, pages, P/E cycles, floating gates, GC, wear leveling β the best beginner explanation on the internet | flashdba.com |
| Codecapsule βCoding for SSDsβ | Blog (6 parts) | SSD architecture from a programmerβs perspective β access patterns, FTL, what your code does to NAND | codecapsule.com |
| SPDK SSD Internals | Reference page | Concise authoritative technical reference β NVMe, namespaces, controllers | spdk.io |
| mikeroyal/SSD-Guide | GitHub awesome list | Curated collection β tools, learning materials, interfaces, firmware, file systems | GitHub |
| WintelGuy SSD Calculator | Web tool | Enter your driveβs TBW spec + daily usage β estimates remaining years of life | wintelguy.com |
Quick Hits
| Want | Do |
|---|---|
β CrystalDiskInfo (Windows) or sudo smartctl -a /dev/nvme0 (Linux/Mac) |
|
| β Compare SMART host writes vs NAND writes before/after a workload | |
| β Power off β connect via USB adapter β Recuva or PhotoRec | |
β Your SSD brandβs tool β Secure Erase button. Or sudo nvme sanitize -a 2 /dev/nvme0 |
|
| β trimcheck β write, delete, verify itβs gone | |
β pip install pySMART β 3 lines of Python β GitHub |
|
| β simpleFTL (Python) β see page mapping + garbage collection | |
| β flashdba.com series |
Your drive is already keeping score. Now you can read it.

!