Recovering failured GPT disk in Windows

One of my disks was having a lot of read errors and it was obviously failing.

My biggest mistake was at first just trying to copy the files to safety with normal Windows copy-commands. I should have used the right tools from the beginning when there was still something to salvage..

The best tool for the job was ddrescue from cygwin-package. If you are familiar with cygwin, you should have no problems using ddrescue.

I first tried with command:
ddrescue -Ddv /dev/sdb G:/Salvage.dd Salvage_logfile.log
But the problem was that reading the bad sectors was so slow that it would have taken months to read the whole disk.
I could see from the log files that there was a pattern where the bad sectors were.So I wrote a script that does the salvage in 100Mb chunks. When it encounters chunk that has errors, it stops reading at first found error and moves on to the next chunk.

This Powershell script loops 3TB disk in 100Mb steps( it actually tries to read 200Mb in one loop). It saves backup of each logfile so you can always get back to working logfile if the drive goes offline or else.

# Reading from 0M to  3000000M in 100M steps
For ($i=0; $i -lt 3000000; $i+=100)  {
#  "c:\cygwin\bin\ddrescue" = location of your ddrescue command

# -Ddv = direct disk access with synchronous writes
# -e+0 = stops at first error and continues to next chunk
# -s200M = reading data in 200M chunks
# /dev/sdb = location of the drive( all partitions) I used "smartctl -i /dev/sdb" to identify which drive to us.
# G:/Salvage.dd = location of the destination image file we are creating.
    &"c:\cygwin\bin\ddrescue" -Ddv -e+0  '-i'$i'M' -s200M /dev/sdb G:/Salvage.dd Salvage_logfile.log
# Make a backup copy of log file
    &"copy" Salvage_logfile.log Salvage_logfile.100M.$i.log
}

My 3TB drive took three days for the first cycle to finish to about 95% and after that the drive died :(
I could only salvage some bits'n'pieces.

There's some blogs about what commands to issue after the initial quick read:
Data Recovery Tips and Tricks
A brief manual on how to use ddrescue

You can view progress of rescue with ddRescueView.
Here's a view of my disk.

"Doctor : I'm afraid I have some bad news. "

After you have salvaged what you can, you can mount the image with OSFMount
All these tools work with GPT disks.

Comments