this post was submitted on 17 Nov 2023
1 points (100.0% liked)

Data Hoarder

170 readers
1 users here now

We are digital librarians. Among us are represented the various reasons to keep data -- legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they're sure it's done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time (tm) ). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.

founded 1 year ago
MODERATORS
 

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

top 9 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 11 months ago

WD has the "WD Dashboard" utility that will allow you to run a LONG SMART test.

[–] [email protected] 1 points 11 months ago

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.

[–] [email protected] 1 points 11 months ago

ZFS scrubs. I sleep well at night and haven’t lost a byte of valuable data in 15+ years.

[–] [email protected] 1 points 11 months ago

None. Modern drives reallocate bad sectors so the only important metric I look at is remaining spare sectors.

[–] [email protected] 1 points 11 months ago

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.

[–] [email protected] 1 points 11 months ago

Do a long SMART test. It goes over the whole drive. The short ones only do spot checks.

[–] [email protected] 1 points 11 months ago

HD Sentinel

[–] [email protected] 1 points 11 months ago

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
[–] [email protected] 1 points 11 months ago

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.