Every homelab grows a drawer of drives: pulled from old laptops, retired from an ESXi host, left in a Raspberry Pi that got repurposed. I finally went through mine. The rule was simple: read-only tests only, so nothing on a drive gets changed until I’ve decided what to do with it.

The toolkit was smartctl and a handful of USB enclosures:

sudo smartctl -a /dev/sdX          # health, attributes, error log
sudo smartctl -t short /dev/sdX    # 2-minute self-test, reads only
sudo smartctl -l selftest /dev/sdX # the result

Eleven drives and five enclosures later, here’s what I found.

Head parking was the clearest signal

Laptop hard drives save power by parking their heads off the platters when idle, and each park-and-unpark is counted as Load_Cycle_Count (attribute 193). Drives in this class are typically rated for around 600,000 cycles. A laptop drive that ended up in an always-on box, with something waking it every few seconds, burns through that fast.

Head load cycles per hard drive (log scale)

Each step to the right is 10× more. The vertical line is a typical rating of 600,000.

  • ✓ Keep
  • ! Backup copy only
  • ✕ Recycle
  • ✕✕ Failing
Hitachi 7K500 320GB✕ Recycle
HGST Z7K500 500GB! Backup copy only
Seagate Momentus 500GB✕ Recycle
Seagate Momentus 80GB✕ Recycle
Toshiba MK8037GSX 80GB✕ Recycle
WD AV-25 320GB✓ Keep
WD Scorpio Blue 250GB✕✕ Failing
Toshiba MQ01ABD100V 1TB✓ Keep

The top four are past or right at the rating. The Hitachi had parked its heads 5.8 million times, nearly ten times over. It passed its health check with a clean surface, and it’s still going to recycling: a head-load mechanism that far past its design life can stop spinning up with no warning.

The chart also shows the limit of this one number. The WD Scorpio Blue sits comfortably below the rating and is the worst drive in the pile. It fails its own SMART health check, with 541 reallocated sectors marked FAILING_NOW and 53,888 logged errors, and its self-test aborted 10% of the way in with “unknown failure”. Head wear and surface wear are separate ways to die, so you need to look at both.

Every drive

Serial numbers left out. “Hours” is power-on hours, except for the Seagate 500GB, whose power-on counter had wrapped. For that one I used Head_Flying_Hours.

Hard drives

DriveHoursLoad cyclesProblems foundVerdict
Toshiba MQ01ABD100V 1TB8,45446none✓ Keep
WD AV-25 320GB5,728192,847none✓ Keep
HGST Z7K500 500GB7,1851,948,022worn heads; clean surface! Backup copy only
Seagate Momentus 7200.4 500GB11,4301,215,51146 reallocated sectors, 4 errors incl. Device Fault✕ Recycle
Hitachi 7K500 320GB34,7885,840,263very worn heads; clean surface✕ Recycle
Seagate Momentus 5400.6 80GB19,042601,3162,891 failed reads, worn heads✕ Recycle
Toshiba MK8037GSX 80GB14,405284,78112 unreadable sectors now, 41 errors✕ Recycle
WD Scorpio Blue 250GB12,81794,390541 reallocated sectors, 53,888 errors, self-test failed✕✕ Failing

Every self-test I let finish passed, except the WD Scorpio’s. Three drives got unplugged before their two minutes were up, but their attributes had already decided it.

SSDs

SSDs have no heads to park. What wears out is flash, so the numbers to watch are the wear indicator and the spare blocks.

DriveHoursWearVerdict
Samsung 860 EVO 500GB58,66749% used; 186 TB written of a 300 TB rating✓ Keep
Samsung PM851 128GB51,60622% used✓ Keep
SanDisk SD7SB3Q 128GB27,879low: 340 erase cycles per block on average✓ Keep

All three SSDs had run for years in always-on machines. None had a single logged error, and all three passed their self-tests. The 860 EVO came out of an ESXi host where Home Assistant, Cacti and Nagios had written about 75 GB a day to it for six and a half years. It’s halfway through its rated endurance, with not a single error.

The enclosures matter as much as the drives

Each enclosure has a USB-to-SATA bridge chip, and the chip decides how fast the drive can go, whether SMART works, and whether an SSD gets TRIM.

Bridge chipUSBLinux driverSMARTVerdict
JMicron JMS561U (Sabrent)3.0, 5 Gb/suasworks as is✓ Keep
JMicron JMS5673.0, 5 Gb/suasneeds -d sat✓ Keep
ASMedia ASM10513.0, 5 Gb/susb-storageworks as is✓ Keep for hard drives
Initio INIC-1610P2.0, 480 Mb/susb-storageneeds -d sat,12Spare
Super Top M61162.0, 480 Mb/susb-storageworks as isSpare

The two USB 2.0 enclosures cap any drive at about 35 MB/s, so filling a 500 GB drive takes around four hours. The uas driver on the JMicron chips is the newer, faster protocol, and those are the ones I’d pair with an SSD.

None of them had TRIM enabled by default (provisioning_mode reads full). The JMicron chips can usually do it with a udev rule that sets provisioning_mode=unmap, which is worth doing for an SSD that lives in one.

The Initio took some trial and error. Plain smartctl failed with unsupported scsi opcode, and so did -d sat. Only the 12-byte variant worked:

sudo smartctl -d sat,12 -a /dev/sdX

Gotchas, collected

  • A PASSED health check doesn’t mean much. It only fails when an attribute crosses the manufacturer’s threshold. Four of the drives I’m recycling passed. Read the attributes and the error log.
  • The short self-test samples a small part of the disk. The Toshiba 80GB passed it while holding 12 unreadable sectors.
  • Some Seagate raw values look alarming but aren’t. Raw_Read_Error_Rate, Seek_Error_Rate and Command_Timeout pack several counters into one big number. Look at the normalized value instead.
  • Power-on hours can wrap. One Seagate logged errors at hour 8,760 but reported 4,764 hours of use. Head_Flying_Hours was the sane number.
  • Turn off desktop automount while testing. My file manager mounted the failing WD’s partition the moment I plugged it in, and immediately hit read errors. That’s extra wear on a drive that has none to spare.
  • Don’t unplug a drive in the middle of a wipe. A dd from /dev/zero over USB runs about 130 MB/s, so 500 GB takes an hour. I swapped the HGST out at about the two-thirds mark, so it needs a second pass.
  • A failing drive may not finish a wipe. For the WD Scorpio, physical destruction is quicker than waiting for dd to stall on bad sectors.

That leaves five drives worth keeping, one drive for spare backups, five for recycling, and three USB 3 enclosures to keep. The two USB 2.0 enclosures are spares.