TL;DR
Test refurbished drives thoroughly before trusting them with your data. A 48-hour testing procedure catches defects early.
Prerequisites:
- Linux system (guide uses Linux Mint)
- External USB-to-SATA adapter or dock
- 48+ hours of uninterrupted testing time
- smartmontools, fio, and badblocks installed
What you’ll test:
- SMART baseline and health status
- Manufacturer extended self-test (12-24 hours)
- Destructive write patterns with badblocks
- Random I/O stress testing with fio
Buying refurbished enterprise drives is cost-effective for homelab storage, but you need to verify they’re actually good before deploying them. This guide covers the full testing procedure I use for every refurbished drive before it goes into production.
Real-World SMART Data Examples
These are actual SMART reports from three 14TB Western Digital Ultrastar drives I tested. Use these as reference for what good drives look like.
Drive 1: WDC WD140EDGZ-11B1PA0 (7200 RPM)
sudo smartctl -a /dev/sdd
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-88-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Ultrastar (He10/12)
Device Model: WDC WD140EDGZ-11B1PA0
Serial Number: 9MG6JBVJ
LU WWN Device Id: 5 000cca 290c2f7b9
Firmware Version: 85.00A85
User Capacity: 14.000.519.643.136 bytes [14,0 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Device is: In smartctl database 7.3/5528
ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Thu Dec 11 14:49:56 2025 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 001 Pre-fail Always - 0
2 Throughput_Performance 0x0004 100 100 054 Old_age Offline - 0
3 Spin_Up_Time 0x0007 091 091 001 Pre-fail Always - 0 (Average 386)
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 7
5 Reallocated_Sector_Ct 0x0033 100 100 001 Pre-fail Always - 0
7 Seek_Error_Rate 0x000a 100 100 001 Old_age Always - 0
8 Seek_Time_Performance 0x0004 100 100 020 Old_age Offline - 0
9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 1
10 Spin_Retry_Count 0x0012 100 100 001 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 7
22 Helium_Level 0x0023 100 100 025 Pre-fail Always - 100
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 7
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 7
194 Temperature_Celsius 0x0002 025 025 000 Old_age Always - 49 (Min/Max 21/49)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 100 100 000 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
The above only provides legacy SMART information - try 'smartctl -x' for moreDrive 2: WDC WD140EDGZ-11B2DA2 (7200 RPM)
sudo smartctl -a /dev/sdf
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-88-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Ultrastar (He10/12)
Device Model: WDC WD140EDGZ-11B2DA2
Serial Number: 2BKXKXWT
LU WWN Device Id: 5 000cca 295f74437
Firmware Version: 85.00A85
User Capacity: 14.000.519.643.136 bytes [14,0 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Device is: In smartctl database 7.3/5528
ATA Version is: ACS-4 published, ANSI INCITS 529-2018
SATA Version is: SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Thu Dec 11 14:49:20 2025 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 001 Pre-fail Always - 0
2 Throughput_Performance 0x0004 100 100 054 Old_age Offline - 0
3 Spin_Up_Time 0x0007 084 084 001 Pre-fail Always - 322 (Average 337)
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 10
5 Reallocated_Sector_Ct 0x0033 100 100 001 Pre-fail Always - 0
7 Seek_Error_Rate 0x000a 100 100 001 Old_age Always - 0
8 Seek_Time_Performance 0x0004 100 100 020 Old_age Offline - 0
9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 0
10 Spin_Retry_Count 0x0012 100 100 001 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 10
22 Helium_Level 0x0023 100 100 025 Pre-fail Always - 100
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 10
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 10
194 Temperature_Celsius 0x0002 045 045 000 Old_age Always - 36 (Min/Max 22/36)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 100 100 000 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 0 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
The above only provides legacy SMART information - try 'smartctl -x' for moreDrive 3: WDC WD140EDFZ-11A0VA0 (5400 RPM)
sudo smartctl -a /dev/sde
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-88-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Ultrastar (He10/12)
Device Model: WDC WD140EDFZ-11A0VA0
Serial Number: 7LG8TE8K
LU WWN Device Id: 5 000cca 2dbc3feab
Firmware Version: 81.00A81
User Capacity: 14.000.519.643.136 bytes [14,0 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5400 rpm
Form Factor: 3.5 inches
Device is: In smartctl database 7.3/5528
ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Thu Dec 11 14:47:40 2025 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 001 Pre-fail Always - 0
2 Throughput_Performance 0x0004 100 100 054 Old_age Offline - 0
3 Spin_Up_Time 0x0007 092 092 001 Pre-fail Always - 0 (Average 337)
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 5
5 Reallocated_Sector_Ct 0x0033 100 100 001 Pre-fail Always - 0
7 Seek_Error_Rate 0x000a 100 100 001 Old_age Always - 0
8 Seek_Time_Performance 0x0004 100 100 020 Old_age Offline - 0
9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 0
10 Spin_Retry_Count 0x0012 100 100 001 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 5
22 Helium_Level 0x0023 100 100 025 Pre-fail Always - 100
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 5
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 5
194 Temperature_Celsius 0x0002 042 042 000 Old_age Always - 38 (Min/Max 22/38)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 100 100 000 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 0 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
The above only provides legacy SMART information - try 'smartctl -x' for moreWhy Test Refurbished Drives
Refurbished drives can fail early if they weren’t properly tested before resale. The seller’s “tested” claim might just mean they checked SMART status for 30 seconds. A thorough 48-hour test catches:
- Hidden bad sectors that haven’t been reallocated yet
- Drives that fail under sustained load
- Temperature issues during extended operation
- Drives with intermittent errors
Never skip testing refurbished drives. The cost of losing data far exceeds the time spent testing. I’ve caught defective drives that passed initial SMART checks but failed under load testing.
Equipment Setup
What You Need
Hardware:
- External USB-to-SATA adapter or dock (UASP preferred)
- Linux system (this guide uses Linux Mint)
Software:
- smartmontools - SMART monitoring and testing
- badblocks - Sector-level testing
- fio - I/O stress testing
- tmux - Terminal multiplexer for parallel testing
Test drives externally with a USB adapter instead of installing them in your server. This keeps your production system running and makes it easy to disconnect failed drives. Some USB adapters don’t pass SMART commands properly - get one that supports SAT protocol.
Install Required Tools
sudo apt update
sudo apt install smartmontools fio e2fsprogs sysstat tmux -yTesting Multiple Drives in Parallel
If you’re testing multiple drives, use tmux to run tests in parallel. Each drive takes 48+ hours, so testing 4 drives sequentially would take 8+ days. With tmux, test them all simultaneously.
Start a new tmux session:
tmux new -s disk-testingCreate windows for each drive using Ctrl+b, c. Assign one drive per window (Window 0: /dev/sdb, Window 1: /dev/sdc, etc.).
Switch between windows with Ctrl+b, 0-9. Detach from session with Ctrl+b, d and reattach later:
tmux attach -t disk-testingRun the same test procedure in each window. Tests continue running even after detaching or logging out.
When testing multiple drives in parallel, replace sdX with the actual device letter (sdb, sdc, sdd) in every command. All output filenames include the device name to prevent files from overwriting each other.
Phase 1: Initial SMART Baseline
Identify the Drive
Connect the drive via USB adapter and identify it:
lsblkOr use fdisk:
sudo fdisk -lFind your drive (likely /dev/sdb, /dev/sdc, etc.). For this guide I’ll use /dev/sdX - replace X with your actual device letter.
Double-check you have the correct device before running any tests. Testing the wrong drive will erase your data. Cross-reference by capacity, model, and serial number.
Get Baseline SMART Data
View all SMART information:
sudo smartctl -a /dev/sdXSave baseline for later comparison. Use unique filename per drive:
sudo smartctl -a /dev/sdX > ~/disk_baseline_sdX_$(date +%Y%m%d).txtCheck Critical Values
Quick health check:
sudo smartctl -H /dev/sdXVerify SMART is enabled:
sudo smartctl -i /dev/sdX | grep "SMART support"Expected for good refurbished drive:
- SMART overall-health: PASSED
- Reallocated_Sector_Ct (ID 5): 0
- Current_Pending_Sector (ID 197): 0
- Offline_Uncorrectable (ID 198): 0
- UDMA_CRC_Error_Count (ID 199): 0
- Power_On_Hours (ID 9): <5000 hours for “lightly used”
Refurbished drives typically have 1000-5000 power-on hours. Enterprise drives are rated for 2.5 million hours MTBF, so 5000 hours (~208 days) is barely broken in. Focus on error counts, not age.
Phase 2: SMART Self-Tests
Run three manufacturer self-tests in sequence: conveyance (shipping damage), short (quick defects), then extended (full surface scan).
Conveyance Test (1-2 minutes)
Detects damage from shipping and handling. Launch the test:
sudo smartctl -t conveyance /dev/sdXCheck result after 2 minutes:
sudo smartctl -a /dev/sdX | grep -A 10 "Self-test log"Expected: Completed without error
Short Test (2 minutes)
Quick electrical and mechanical verification. Launch the test:
sudo smartctl -t short /dev/sdXCheck result after 2 minutes:
sudo smartctl -a /dev/sdX | grep -A 10 "Self-test log"Expected: Completed without error
Extended Test (12-24 hours)
Full surface scan of the entire disk. Launch the test:
sudo smartctl -t long /dev/sdXVerify test started:
sudo smartctl -a /dev/sdX | grep "Self-test execution"Expected output:
Self-test execution status: (249) Self-test routine in progress...
90% of test remaining.Monitor Progress
Check progress manually:
sudo smartctl -a /dev/sdX | grep -A 5 "Self-test execution"Or monitor automatically (updates every 30 minutes):
watch -n 1800 'sudo smartctl -a /dev/sdX | grep -A 3 "Self-test execution"'Review Results
After 12-24 hours, check the test log:
sudo smartctl -a /dev/sdX | grep -A 10 "SMART Self-test log"Expected result:
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% XX -Red flags:
- “Completed: read failure” = Return drive immediately
- “Interrupted” = Test was stopped, rerun it
- LBA_of_first_error has value = Bad sectors detected
Phase 3: SMART Attribute Analysis
View all SMART attributes:
sudo smartctl -a /dev/sdX | grep -E "^ [0-9]+"Critical Attributes
| Attribute | ID | Good Value | Fail Threshold |
|---|---|---|---|
| Reallocated_Sector_Ct | 5 | 0 | >10 |
| Reported_Uncorrect | 187 | 0 | >0 |
| Current_Pending_Sector | 197 | 0 | >0 |
| Offline_Uncorrectable | 198 | 0 | >0 |
| UDMA_CRC_Error_Count | 199 | 0 | >5 |
| Power_On_Hours | 9 | <5000 | >10000 |
| Temperature_Celsius | 194 | 30-45°C idle | >50°C idle |
Temperature Check
Check current temperature:
sudo smartctl -a /dev/sdX | grep -i temperatureDrives should idle at 30-45°C. Above 50°C at idle indicates potential cooling issues.
Phase 4: Destructive Write Testing
This phase completely erases the drive. Only proceed if the drive is blank or you’ve backed up any data.
Badblocks tests at the sector level for physical defects, while FIO stress-tests I/O performance under realistic workloads. Both are needed because they catch different types of failures.
Partition Setup
Create GPT partition table:
sudo parted /dev/sdX mklabel gptCreate single partition spanning full disk:
sudo parted /dev/sdX mkpart primary 0% 100%Badblocks Test
Badblocks writes patterns to every sector and verifies them. Run this first before creating the filesystem.
Determine optimal block size:
sudo blockdev --getbsz /dev/sdX1Run badblocks with the block size (typically 4096). Use unique filename per drive:
sudo badblocks -wsv -b 4096 -o ~/badblocks_errors_sdX.txt /dev/sdX1Replace both instances of sdX with your actual device (e.g., sdb, sdc, sdd).
Options:
-w= Destructive write test-s= Show progress-v= Verbose output-b= Block size (use value from blockdev)-o= Save errors to file
This takes 12-24 hours for large drives. Expected result: 0 bad blocks found.
Monitor Temperature During Tests
Long tests stress the drive and increase temperature. Log temperatures to track if they exceeded safe thresholds during the test.
In a separate tmux window, run this to log temps every 5 minutes for up to 24 hours:
timeout 24h bash -c 'while true; do echo "$(date) - $(sudo smartctl -a /dev/sdX | grep Temperature_Celsius)" >> ~/temp_log_sdX.txt; sleep 300; done'For larger drives that take longer than 24 hours, increase the timeout (e.g., timeout 30h).
Replace sdX with your device letter. After the test completes, check for temperatures that exceeded 55°C:
grep -E '5[5-9]|[6-9][0-9]' ~/temp_log_sdX.txtView max temperature reached:
cat ~/temp_log_sdX.txtDrives under load should stay below 55°C. If temps exceeded 60°C, the drive may need better cooling or could indicate a hardware problem.
If you see bad blocks:
- Note the exact error count and LBA addresses
- Check if SMART shows reallocated sectors increasing
- Return drive for RMA with error log
Format and Mount
After badblocks completes, format the partition:
sudo mkfs.ext4 -F /dev/sdX1For single disk testing:
sudo mkdir -p /mnt/test_disk
sudo mount /dev/sdX1 /mnt/test_diskFor parallel testing (multiple disks):
Create unique mount points per drive:
sudo mkdir -p /mnt/test_disk_sdX
sudo mount /dev/sdX1 /mnt/test_disk_sdXExample for 3 drives:
sudo mkdir -p /mnt/test_disk_sdb /mnt/test_disk_sdc /mnt/test_disk_sdd
sudo mount /dev/sdb1 /mnt/test_disk_sdb
sudo mount /dev/sdc1 /mnt/test_disk_sdc
sudo mount /dev/sdd1 /mnt/test_disk_sddFIO Stress Test
Change to the mounted directory:
cd /mnt/test_disk_sdXRun 6-hour mixed random read/write stress test:
sudo fio --name=stress_test \
--filename=testfile \
--size=50G \
--bs=4k \
--ioengine=libaio \
--iodepth=32 \
--numjobs=4 \
--rw=randrw \
--rwmixread=70 \
--rwmixwrite=30 \
--direct=1 \
--runtime=21600 \
--group_reporting \
--output=~/fio_results_sdX_$(date +%Y%m%d).txtReplace sdX with your device letter (e.g., sdb, sdc, sdd).
Watch for I/O errors in kernel log:
watch 'dmesg | tail -20'Check I/O statistics:
iostat -x 5 /dev/sdXExpected result: Test completes with 0 I/O errors and consistent latencies.
Phase 5: Final Validation
Post-Test SMART Check
Capture final SMART state. Use unique filename per drive:
sudo smartctl -a /dev/sdX > ~/disk_final_sdX_$(date +%Y%m%d).txtCompare critical attributes to baseline:
diff <(grep -E "^ (5|197|198) " ~/disk_baseline_sdX_*.txt) \
<(grep -E "^ (5|197|198) " ~/disk_final_sdX_*.txt)No differences should appear in critical attributes. Any increase in reallocated sectors or pending sectors = failed drive.
Health Summary
Quick health check:
sudo smartctl -H /dev/sdXOverall status:
sudo smartctl -a /dev/sdX | grep "SMART overall-health"Must show: PASSED
Pass/Fail Criteria
PASS - Drive is Safe to Deploy
✅ Extended self-test: Completed without error ✅ Badblocks: 0 bad blocks found ✅ FIO stress: 0 I/O errors ✅ SMART health: PASSED ✅ Reallocated sectors: 0 (or no increase from baseline) ✅ Pending sectors: 0 ✅ CRC errors: 0 ✅ Temperature: <50°C idle, <55°C under load
FAIL - Return for RMA
❌ Self-test: Completed with errors or read failure ❌ Badblocks: Any bad blocks found ❌ FIO: I/O errors or hung processes ❌ SMART: FAILING status on any attribute ❌ Reallocated sectors: >10 on “new” drive ❌ Pending sectors: >0 ❌ CRC errors: >5 ❌ Temperature: >50°C at idle
If a drive fails any test, return it. Don’t rationalize that “a few bad sectors are okay” or “it’ll probably be fine.”
Cleanup and Documentation
Unmount and Wipe
Unmount test partition(s):
Single disk:
sudo umount /mnt/test_diskMultiple disks:
sudo umount /mnt/test_disk_sdb /mnt/test_disk_sdc /mnt/test_disk_sddWipe partition table (optional - deployment system will do this):
sudo parted /dev/sdX mklabel gptDocument Results
Create test report per drive:
REPORT_FILE=~/drive_test_report_sdX_$(date +%Y%m%d).txt
cat ~/disk_baseline_sdX_*.txt ~/disk_final_sdX_*.txt ~/fio_results_sdX_*.txt ~/badblocks_errors_sdX.txt ~/temp_log_sdX.txt > $REPORT_FILEAdd summary:
echo "=== TEST SUMMARY ===" >> $REPORT_FILE
sudo smartctl -a /dev/sdX | head -50 >> $REPORT_FILEReplace sdX with your actual device (e.g., sdb, sdc, sdd).
Store this report with the drive’s serial number for warranty reference.
Timeline
| Phase | Duration | Can Run Concurrent? |
|---|---|---|
| Initial SMART baseline | 30 min | No |
| Conveyance test | 2 min | No |
| Short self-test | 2 min | No |
| Extended self-test | 12-24 hrs | No (must complete first) |
| SMART analysis | 30 min | No |
| Partition setup | 5 min | No |
| Badblocks write test | 12-24 hrs | No |
| Format and mount | 5 min | No |
| FIO stress test | 6 hrs | No |
| Final validation | 1 hr | No |
| Total | 48-72 hrs |
Run all tests sequentially. Each test needs to complete before starting the next.
Use tmux to test multiple drives in parallel. Testing 4 drives simultaneously takes 48-72 hours total instead of 8+ days sequentially.
Troubleshooting
Drive Not Detected
Check USB connection:
lsusb
dmesg | tail -20Try different USB adapter - some don’t pass SMART commands.
SMART Not Available
Some USB adapters don’t support SMART passthrough. Try SAT protocol:
sudo smartctl -a /dev/sdX -d satOr try specific adapter protocols:
sudo smartctl -a /dev/sdX -d usbjmicron
sudo smartctl -a /dev/sdX -d usbsunplusIf SMART still doesn’t work, get a better USB adapter that supports UASP and SAT.
Test Hangs
If badblocks or fio hangs:
- Check
dmesgfor USB/SATA errors - Try different USB port (USB 3.0 vs 2.0)
- Drive might be failing - document behavior and RMA
Next Steps
Once drives pass all tests:
- Label drive with model, serial, and test date
- Store in anti-static bag until deployment
- Keep test reports for warranty claims
- Deploy in your storage array (UnRAID, ZFS, etc.)
- Monitor SMART monthly after deployment
Testing takes 48+ hours but catches defective drives before they’re deployed with your data.