I’ve purchased some recertified drives (from serverpartdeals.com) and I was researching how to test before using them. (I know that some people are OK with just using them as-is but I’d like to perform a test if possible and not incredibly long)

badblocks sounds like the standard approach but Arch Linux doesn’t recommend it and I’m also unsure how long it will take for 16 TB drives. I saw a post where 8 TB took almost 4 days so I’m guessing these would take over a week (assuming no crashes, etc).

Instead, Arch Linux suggests encrypting the drive (cryptsetup), filling with zeros, and then reading it back. Is this sufficient or should be this be acceptable?

There is also a thread here that talks about filling an encrypted drive with random bytes and then checking the sha256 hash. This sounds better than the last approach since every byte could be unique but I’m not sure.