Changelog

This project history is based on the version notes embedded in the disk-burnin.sh script.

May 30, 2022 (KY)

  • Added -b & -c options to control respective badblocks options.

October 5, 2020 (KN)

  • Added -x option to control the badblocks -e option, allowing extended testing.
  • Added smartctl to the list of dependencies.
  • Changed disk type detection so that we assume all drives are mechanical drives unless they explicitly return 'Solid State Drive' for Rotational Rate.
  • Removed datestamp from every line of log output, only emitting it in log headers.
  • Minor reformatting.

September 9, 2020 (MS)

  • Added .editorconfig to streamline editor behavior for developers.
  • Removed dependencies on pcregrep and tr.
  • Added documentation to functions and complex statements.
  • Reduced code duplication, simplified and decoupled code where possible.
  • Improved portability and resiliency.
  • Checked availability of dependencies during runtime.
  • Checked for root privileges during runtime.
  • Added option parsing, most notably (-h)elp and -f for non-dry-run mode.
  • Added dry_run_wrapper() function.
  • Added disk type detection to skip badblocks for non-mechanical drives.

August 19, 2020 (KN)

  • Changed DRY_RUN value so that dry runs are no longer the default setting.
  • Changed badblocks call to exit immediately on first error.
  • Set logging directory to current working directory using pwd command.
  • Reduced default tests to run:
    1. Short SMART test
    2. badblocks
    3. Extended SMART test

June 8, 2017 (KN)

  • Modified parsing of short and extended test durations to accommodate the values returned by larger drives; we needed to strip out the '(' and ')' characters surrounding the integer value in order to fetch it reliably.

May 12, 2017 (KN)

  • Added code to poll the disk and check for completed self-tests. As noted above, some disks don't report accurate values for the short and extended self-test intervals, sometimes by a significant amount. The original approach using 'fudge' factors wasn't reliable and the script would finish even though the SMART self-tests had not completed. The new polling code helps insure that this doesn't happen.
  • Fixed code to work around annoying differences between sed's behavior on Linux and FreeBSD.

April 8, 2017 (KN)

  • Added minimum test durations because some devices don't return accurate values.
  • Added code to clean up the log file, removing copyright notices, etc.
  • No longer echo 'smartctl -t' output to log file as it imparts no useful information.
  • Emit test results after tests instead of full 'smartctl -a' output.
  • Emit full 'smartctl -x' output at the end of all testing.
  • Minor changes to log output and formatting.

March 2017 (Keith Nash)

  • Initial version written.