@dimgs, it’s unclear from your description, which drive gives you this error: source drive or target drive (external HDD). Quick websearch shows, that either can be the case.
If your internal disk is failing (which could also explain, why you were dumped to emergency mode in the first place) – and which is a worst-case scenario possible – then the best approach to save as much data as you can would be this:
Get the free hard drive (maybe several) as large as partitions which contain your data on the failing harddrive. You don’t need root partition, you definitely heed /home and maybe others with data, if you had any.
Make an image(s) of the partitions you need from the failing drive to the new drive (as image files) using ddrescue. It can be run multiple times to recreate as much of the original data as possible.
Mount the image you’ve got on a new system and copy the files out of it or run data recovery tools such as photorescue on this image to recover as much as you can.
Keep in mind that in such a case repeated attempts to just copy files can lead to disk’s total failure - i.e. the more you try to read from it, the more likely it’s to die.
Other possibilities are:
bad cable/connection – unplugging and replugging internal hard drive can help. It’s even better to test it with another sata cable.
logical filesystem errors. Unlikely because if this:
but still a possibility.
the reason of this messages if the external hard drive you’re using. There’s several options here (using another drive, reformatting it, etc.)
To get more info and to better understand which drive is the reason of this error, I’d suggest this: when you’ll see this error next time, open terminal and run
You should see something alike to
[173159.276758] Buffer I/O error on device sr1, logical block 407
The device designation should tell us, which drive is at fault. Then we can decide how to proceed.