Ubuntu – How to recover data from a 2TB hard drive

data-recoveryexternal-hddhard drivewindows 7

I have a Western Digital 2TB External Hard Drive. I basically use it to keep all my movies and videos. Its file system is NTFS, and currently I'm using 1.4TB. One night I turn it on and copied a 4GB file and there was no problem. Then I tried to copy another 6GB file and Ubuntu throw the following error: "Input/output error". I tried to create a new folder with no luck. I still could read the disk an play a file, so I thought restarting the computer would solve the problem, but it didn't. The next time, Ubuntu didn't mount the disk.

After that I tried in another PC with Window 7. It throwed a message telling me: first, that the disk needs to be formatted, and second, a "Local Disk #: Is not accessible. Data error (cyclic redundancy check)". Here is when I started to worry. I tried to fix the disk with CHKDSK (chkdsk \r). After about 5 hours, it crashed with the following error: "An unspecified error occurred".

My guess to all this is that the disk is dying. :'(

Lastly I did one more thing. I installed GSmartControl on Ubuntu to see the SMART info and the attributes tab appears in red with the following line highlited:

197 Current_Pending_Sector  0x0032   197   197   000    Old_age   Always       -       977

Just to check, I left the disk on for about 2 minutes and then refreshed the page, and the Current_Pending_Sector RAW_VALUE increased from 977 to 979. My guess is that sectors on the disk are dying. Am I right?

If every time I turn on the disk more sectors are going to die, I need to copy the data fast. I don't know if there is a solution on Windows, and I'm worried about the time that it could take to do it with the slowness of Windows. Basically my question is: How can I recover the data? (Or at least some of it). Is there any program on Ubuntu that can help me with this (If I'm still on time)?. My main concern is the size of the disk (2TB), so I think I would need at least another 2TB disk to copy to.

Any help would be appreciated.

Best Answer

ddrescue (Install ddrescue)

To recover data from a failing hard disk any further read or write access to this drive needs to be avoided as this dramatically increases damage and may eventually lead to a complete failure to access this drive.

It is therefore recommended that you first read all data that are still accessible on your drive by creating an image of this drive. Recovering your data can then be done from this image.

Ddrescue is a tool that allows copying all data from your drive and save it to either another (healthy) drive, or to an image on a healthy drive. The drive you save your image to needs to be at least of the same size as the original drive was.

There is a detailed guide on how to do this on the Forensic Wiki. The first step will be to boot your system e.g. from a live rescue system or CD and run the following command in a terminal:

ddrescue --no-split </dev/hda1> <imagefile> <logfile>

Replace above <entries> according to your system setup.

You can then perform data recovery e.g by using testdisc or photorec on the generated imagefile.