Find out the disks on the system
cat /var/run/dmesg.boot
Run the short test in the background[^1].
smartctl -t short /dev/ada0
Then run a conveyance test (for any damage during shipping)
smartctl -t conveyance /dev/ada0
Then check for [bad
blocks](https://wiki.archlinux.org/index.php/Badblocks)[^2][^3].
badblocks -ws /dev/ada0
Then run a long test[^4].
smartctl -t long /dev/ada0
The `-a` flag shows you everything about the drives
smartctl -a /dev/ada0
including the time remaining for the tests
Self-test execution status: ( 249) Self-test routine in progress...
90% of test remaining.
and the time it would take to run the tests:
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 529) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
To see the results *after* the tests have run
smartctl -l selftest /dev/ada0
References
----------
* [Interpreting `badblocks` data](https://forums.freenas.org/index.php?threads/interpreting-badblocks-output.27421/).
Footnotes
---------
[^1]: Use `-C` to run in foreground. But then again, why would you?
[^2]: The non-destructive version is `badblocks -ns`.
[^3]: This is a 2-phase, 4-pass command that will take a *long* time. On
a 4TB WD Red, the whole process was done in about 75 hours.
[^4]: This took about 8 hours on a 4TB WD Red.