Just bought 5 used 8TB Ultrastar drives on ebay for only $35 each. Heck of a deal right? Checked smart info and everything looks good. Of course i know it would be a good idea to do a complete scan for bad sectors but I don’t know the best program for that. Ideally a free win10 program that i could test all 5 at once connected to one pc
ZFS scrubs. I sleep well at night and haven’t lost a byte of valuable data in 15+ years.
WD has the “WD Dashboard” utility that will allow you to run a LONG SMART test.
Any drive made this side of year 2000 will check itself when reading, so all you need is to fill it with junk data and open it, then delete.
None. Modern drives reallocate bad sectors so the only important metric I look at is remaining spare sectors.
HD Sentinel
Do a long SMART test. It goes over the whole drive. The short ones only do spot checks.
The manufactures software. In your case
https://support-en.wd.com/app/products/downloads/softwaredownloads
WD Drive Utilities
Western Digital Dashboard
It is expected that some sectors fail over time. The HD is provision with extra space to account for this. The SMART threshold is what you should look at.
If out of other options just do a simply zero format (e.g.
diskutil zeroDisk diskX
on macOS), and a long SMART test afterwards (e.g.smartctl -t long diskX
). That’s what I do with my new disks and it served me well so far. For large capacity disks it is like a heavy 2 day process (1 day formatting, 1 day testing), but it gives me a piece of mind afterwards.
Extra Hint: During any SMART long test make sure to disable disk sleep in your OS for the time, else test will abort (e.g.
caffeinate -m
on macOS). Also avoid crappy external enclosures that put the disks to sleep by themselves (or you may want to run a script that regularly reads a block from the disk to keep it awake.)Here’s my macOS script to handle the job (I needed it recently because a temporary crappy USB enclosure). It reads a block every 2 minutes via raw I/O w/o caching involved (“/dev/rdisk”)
#!/bin/bash # $Id: keepdiskawake 64 2023-10-29 01:55:56Z tokai $ if [ "$#" -ne 1 ]; then echo "keepdiskawake: required argument required (disk identifier, volume name, or volume path)." 1>&2 exit 1 fi MY_DISKID=`diskutil info "${1}" | awk '/Device Identifier:/ {print $3}'` if [[ ! -z "${MY_DISKID-}" ]]; then printf '\033[35mPoking disk \033[1m"%s"\033[22m with identifier \033[1m"%s"\033[22m…\033[0m\n' "${MY_DISKNAME}" "${MY_DISKID}" MY_RDISKID="/dev/r${MY_DISKID}" echo "CTRL-C to quit" while true; do echo -n . dd if="${MY_RDISKID}" of="/dev/null" count=1 2>/dev/null sleep 120 done else echo "keepdiskawake: Couldn't determine disk identifier for \"${1}\"." 1>&2 exit 1 fi
you need to do a full read and write on the disk. use a program to write the disk full of 0s and then verify read. UNRAId does this with its preclear function.