It would be very useful to have sg3_utils and sdparm in the next release.

The sg3_utils package consists of various programs for sending SCSI commands to devices. They can also be used with devices which are not native SCSI, e.g. USB or Firewire drives. I'll mention a few of them here, but more are described at the URL above.

For data recovery or forensics in particular, sg_dd is extremely useful. sg_dd is one of the few imaging programs which can create sparse output files. Using that option reduces the disk space occupied by the image file. Depending on how "full" the source drive is, you can sometimes save tens or hundreds of gigabytes compared to a plain non-sparse image file (as would be created by GNU dd). Especially when imaging to a slow device such as a USB hard drive, this can save a lot of time. In fact, in most cases it makes sense to use sg_dd in preference to dd, if the destination filesystem supports sparse files.

sgm_dd, sgp_dd - variants of sg_dd which use memory-mapped I/O and POSIX threads respectively. Though these don't support sparse file output, in some cases they may give higher performance than GNU dd.

sg_format - low-level format drives

sg_read_long - read raw sector data (data + ECC). This command can be used to recover partial data from otherwise unreadable sectors (i.e. sectors which dd and other imaging programs cannot read at all).

sg_reassign - used to remap (bad) sectors

sg_raw - send user-specified SCSI commands. Potentially useful for doing vendor-specific stuff like firmware upgrades.