Copying many files without stopping on errors on OSX

I need to copy several Gb from an external HD to my main HD and some files will cause errors. If I do this with the finder, it will stop on the first error.

Is there a way to copy everything no matter the errors? Something like copy of Teracopy for Windows?


Solution 1:

In terminal, type in

cp -Rp /Volumes/<source-volume>/<source-user>/<source-folder>/ /Volumes/<destination-volume>/<destination-folder>/

Destination folder should be a new folder you are creating.

If you get info on the new folder after running this you can see the folder size increase.

Example

cp -Rp /Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/ /Volumes/external/newfolder

It will copy and display errors for anything it can't copy but without stopping.

*If your directory names contain spaces put quotes around the path

Example

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder

Solution 2:

You can use cp as suggested or rsync, but in the case of I/O Error sometimes it won't work.

So in this case, you can use dd tool for specific files which were corrupted.

dd stands for “disk duplication”. This is a command-line utility bundled with Mac OS X. A free version for Windows is also available.

Be extremely careful, even if you are familiar with command line, because dd can cause unrecoverable damage to your data if you don’t specify correctly input and output. You have been warned.

The arguments of dd are straight-forward:

  • if=path_of_file_with_IO_errors specifies input path
  • of=path_of_clean_copy_to_create specifies output path
  • conv=noerror,sync tells dd to be fault-tolerant

Your output path should not be on the same disk as the damaged file. Actually, you shouldn’t continue using the card or disk with I/O errors, because it’s likely to cause more problems in the future. After recovery the data, you should scrap it or at most use it to store unimportant stuff.

Due to I/O errors, dd can take more time to create the clean copy than a normal copy would take.

But it’s really worth the wait, because now we have a clean file on which we can use our arsenal of diagnostics, preview and video recovery tools.

I/O errors are a serious business, and scrapping the card after recovering the videos is probably the RIGHT THING TO DO. You should also consider that some amount of footage won’t be recovered, or with a less-than-stellar quality.

Source: http://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

Example:

dd if=/Volumes/CD/broken_movie.avi of=~/Movies/broken_movie.avi conv=noerror,sync

See also:

  • Why do we use cp to copy files and not dd? (in unix-derivatives)
  • https://stackoverflow.com/questions/19470160/cant-back-up-sd-card-with-dd-complains-input-output-error
  • dd clone hard drive: Input/Output Error though "chkdsk" says OK