My Disk Archiving Workflow

Identifying disk

ls -lh /dev/disk/by-id/ata-*

Creating disk image

ddrescue /dev/disk/by-id/ata-SB8000NM1234-123456_DEADCAFE ata-SB8000NM1234-123456_DEADCAFE.img ata-SB8000NM1234-123456_DEADCAFE.txt
GNU ddrescue - Data recovery tool.
Copies data from one file or block device to another,
trying to rescue the good parts first in case of read errors.                                                                      

Usage: ddrescue [options] infile outfile [mapfile]                                                                        
Always use a mapfile unless you know you won't need it. Without a
mapfile, ddrescue can't resume a rescue, only reinitiate it.             

Creating hash and recovery records

par2 create -r3 -b3000 ata-SB8000NM1234-123456_DEADCAFE.img.par2 ata-SB8000NM1234-123456_DEADCAFE.img
Usage:
  par2 c(reate) [options] <PAR2 file> [files] : Create PAR2 files

Options: (create)
  -b<n>    : Set the Block-Count
  -s<n>    : Set the Block-Size (don't use both -b and -s)
  -r<n>    : Level of redundancy (%%)
  -r<c><n> : Redundancy target size, <c>=g(iga),m(ega),k(ilo) bytes
  -c<n>    : Recovery Block-Count (don't use both -r and -c)
  -l       : Limit size of recovery files (don't use both -u and -l)
  -n<n>    : Number of recovery files (don't use both -n and -l)

Wiping disk

badblocks -s -v -b 4096 -t random -o badblocks.txt -w /dev/disk/by-id/ata-SB8000NM1234-123456_DEADCAFE
NAME
       badblocks - search a device for bad blocks

OPTIONS
       -s     Show the progress of the scan by writing out rough percentage completion of the current  badblocks  pass
              over  the  disk.  Note that badblocks may do multiple test passes over the disk, in particular if the -p
              or -w option is requested by the user.

       -v     Verbose mode.  Will write the number of read errors, write errors and data- corruptions to stderr.

       -b block_size
              Specify the size of blocks in bytes.  The default is 1024.

       -t test_pattern
              Specify a test pattern to be read (and written) to disk blocks.   The test_pattern may either be  a  nu‐
              meric  value  between  0 and ULONG_MAX-1 inclusive, or the word "random", which specifies that the block
              should be filled with a random bit pattern.  For read/write (-w) and non-destructive (-n) modes, one  or
              more  test  patterns  may  be  specified by specifying the -t option for each test pattern desired.  For
              read-only mode only a single pattern may be specified and it may not  be  "random".   Read-only  testing
              with  a  pattern  assumes  that  the specified pattern has previously been written to the disk - if not,
              large numbers of blocks will fail verification.  If multiple patterns are specified then all blocks will
              be tested with one pattern before proceeding to the next pattern.

       -o output_file
              Write the list of bad blocks to the specified file.  Without this option, badblocks displays the list on
              its standard output.  The format of this file is suitable for use by  the  -l  option  in  e2fsck(8)  or
              mke2fs(8).

       -w     Use  write-mode  test.  With this option, badblocks scans for bad blocks by writing some patterns (0xaa,
              0x55, 0xff, 0x00) on every block of the device, reading every block and comparing  the  contents.   This
              option may not be combined with the -n option, as they are mutually exclusive.