ecp – fast copy, handling errors


unhandled troff command .in

unhandled troff command .ti

ecp [ –bcprvZ ] [ –B block-size ] [ –e max-errors ] [ –i issect ] [ –o ossect ] [ –s sector-size ] sectors input output


Ecp copies sectors disk sectors of the specified input file to the specified output file. Ecp copies multiple sectors (a ‘block’) at a time for speed. When ecp encounters an I/O error, it transfers the current block again, assuming the file is seekable, one sector at a time, prints the sector number(s) of the error(s), and continues copying.

Options are:


reblock input on short reads; this was used mainly when reading a pipe on standard input on 4.2+BSD systems.  


sets the block size (16,384 bytes by default) to block-size.  


ask for confirmation on /dev/cons before starting the copy.  


sets a maximum number of consecutive I/O errors to permit at the beginning of the copy before quitting to max-errors. Lots of consecutive errors may indicate a deeper problem, such as missing media. By default there is no limit.  


seeks to sector issect (assuming zero-origin) before beginning input.  


seeks to sector ossect (assuming zero-origin) before beginning output.  


print reassuring progress reports; helpful mainly when dealing with cranky hardware.  


copy sector groups in reverse order, assuming the files are seekable; this is most useful when input and output overlap.  


sets the sector size (512 bytes by default) to sector-size.  


verify the copy by rereading the input and output files after copying all sectors. This is intended to force the disk to deliver the actual data written on it rather than some cached copy. The locations of any differences are printed.  


‘Swizzle’ the input: stir the bits around in some fashion. Intended for diagnosing bad disks by copying a disk to itself a few times with swizzling on (to defeat caching in operating systems or disk controllers).  


fcp in cp(1), dd(1), dup(3)


–i, –o, –r, –v and error retries only work on devices capable of seeking.

The set of options reflects decades of experience dealing with troublesome hardware.

If the input file is a tape and the last record on the tape before a file mark is less than blocksize bytes long, then ecp will read through past the file mark and into the next file.