January 21st, 2015, 0:41
January 21st, 2015, 0:47
January 21st, 2015, 1:00
Already using ddrescue. It's kind of a problem to have to power cycle the drive, edit the ddrescue log (to remove the fake bad sectors created by ddrescue while it was trying to read from the offline drive), then point ddrescue at a new spot, repeat once for every remaining bad sector...data-medics wrote:It's most likely media damage causing the drive to become unresponsive. Totally normal for drives with lots of bad sectors. You should try imaging it to another drive using ddrescue in Linux. Make sure to use a log file when you do so it'll keep track of which sectors were read when you need to stop and restart it to power cycle the drive.
PM me if you need help with the commands to enter.
January 21st, 2015, 4:53
January 21st, 2015, 14:22
Already tried exactly that, got about 10% of the end of the drive and a few hundred more megabytes after some manual intervention.MindMergepk wrote:you will need to clone the drive in reverse order, in this way i hope you can read most of the good area in the drive first.
am afraid there are very limited options when it comes to software cloning, is better to take the drive to someone who has proper tools & experience.
good luck.
January 21st, 2015, 14:26
KCn wrote:Any insight or things to be learned without taking the drive anywhere?
January 21st, 2015, 15:02
January 21st, 2015, 20:11
January 22nd, 2015, 3:16
data-medics wrote:Unless you're willing to make an investment in pro tools, I think it's time to give up DIY and take it to a data recovery shop. With the proper tools handling the soft/hard resets and power cycling it, should be able to get most the data.
Just know that if you keep trying to force the issue, it will eventually kill the drive completely.
January 22nd, 2015, 18:47
Known and well understood before the recovery even started. If the drive didn't decide to glitch up when reading bad sectors now I'd already have all the (readable) data (and the drive would have had to do less work) I'm willing to try for more data as is (mitigating the offlining issue as best as is easily possible). If the drive utterly fails, oh well (lets hope not). After diminishing returns on that, Seagate console it is.data-medics wrote:Unless you're willing to make an investment in pro tools, I think it's time to give up DIY and take it to a data recovery shop. With the proper tools handling the soft/hard resets and power cycling it, should be able to get most the data.
Just know that if you keep trying to force the issue, it will eventually kill the drive completely.
I had noted and considered that. The cost for the serial adaptor is very small, so this may be worth a try (after trying a little harder at letting ddrescue get the data). Does clearing the g-list restore the original (bad) sectors to where they were, in place of the spares? Most of the reallocation occurred during recovery, long after the last write allowed to the disk.arztt wrote:Some Seagate drives go offline when their g-list (reallocated sectors) is full and when they hit a bad sector then.
On a 500GB Momentus 5400.6 I had the same problem.
Clearing the g-list with i4,1,22 command helped.
But better ask someone with the same drive first, if this will work in your case.
January 23rd, 2015, 14:54
January 23rd, 2015, 18:29
KCn wrote:I note (via multimeter) that this drive's serial interface is at 1.8 volts. Any suggestions on good ready made adaptor that runs at 1.8 volts?
January 23rd, 2015, 22:02
Would this be suitable?fzabkar wrote:KCn wrote:I note (via multimeter) that this drive's serial interface is at 1.8 volts. Any suggestions on good ready made adaptor that runs at 1.8 volts?
I would use an adapter based on the CP2104 or PL-2303HX Rev D, but I would add my own LDO regulator modification for 1.8V, 2.0V, 2.5V and 3.3V I/O.
Otherwise you could use the CP2102, but with the Kindle mod in this thread:
viewtopic.php?f=1&t=29286
January 23rd, 2015, 23:46
Already using ddrescue. It's kind of a problem to have to power cycle the drive, edit the ddrescue log (to remove the fake bad sectors created by ddrescue while it was trying to read from the offline drive), then point ddrescue at a new spot, repeat once for every remaining bad sector...
I've done a number of recoveries with ddrescue and other programs before I knew about ddrescue. I've never seen a drive go offline instantly with the read of any bad sector. It goes offline trying to read sectors that were attempted(failed) to read before (stayed working), now the drive goes offline as soon as they are attempted --- any bad sector.
February 6th, 2015, 23:25
maximus wrote:Already using ddrescue. It's kind of a problem to have to power cycle the drive, edit the ddrescue log (to remove the fake bad sectors created by ddrescue while it was trying to read from the offline drive), then point ddrescue at a new spot, repeat once for every remaining bad sector...
I've done a number of recoveries with ddrescue and other programs before I knew about ddrescue. I've never seen a drive go offline instantly with the read of any bad sector. It goes offline trying to read sectors that were attempted(failed) to read before (stayed working), now the drive goes offline as soon as they are attempted --- any bad sector.
If you are using Linux, and you wish to try ddrescue for a bit longer, I may have some help for the fake bad sectors. You will still have to power cycle the drive, but it should (in theory) exit when it hits an error where it can’t keep reading (drive offline) and mark the bad sector. This is not really practical if there are many errors since you still have to power cycle the drive after every error.
Please see my ddrescue passthrough patch:
http://sourceforge.net/projects/ddrutility/files/ddrescue%20patches/passthrough%20patch/
The latest version 2.1 (for ddrescue 1.19) may be able to handle this if you use the --ata-passthrough option along with the --mark-abnormal-error option. Note that I am unable to test this as I do not have a drive that fails like that.
My patch allows options for ddrescue to use either SCSI or ATA passthrough read commands under Linux. The ATA commands are recommended for best results.
February 6th, 2015, 23:51
KCn wrote:I had a question for you (or anyone else doing conventional recovery):
In the past I've tried to read a bad sector with a hex editor / software data recover program and it showed the windows return code for the failed read, I've seen a different error code for CRC error (found the sector but its data is wrong) and couldn't even find the sector (IDNF). I've seen error codes other than those two when the drive disappears. Obviously windows is getting this from a conventional read. Do failed (conventional) reads have return codes in linux? If so this might be a version of the patch that would get accepted into the mainstream ddrescue (although perhaps not as fancy as what you have).
In such a version it could have something like a config file, if you get error code 23 or 1117 keep going, but if you get error code 2147549183 mark the last read as (bad|unread), and if you get any other return codes (other than success of course) mark the sector as un-tried and exit (need some sort of rolling log of recent errors for diagnostics).
23=CRC error
1117=IDNF(usually)
I've seen this line up with the smart log vs return code in the past.
February 10th, 2015, 18:15
It seems that (windows) the "ReadFile" function throws an exception on a read error and info on that exception can be retrieved via the "GetLastError" function (both exported by kernel32.dll). Windows structured exception handling (SEH) deals with this. One might have to trace such an exception to see where the info is coming from.maximus wrote:I do not know of a way for this to happen in Linux except when using my patch. Antonio (author of ddrescue) has already asked that of me. If anyone figures out a way to determine this both myself and Antonio would be very grateful!KCn wrote:I had a question for you (or anyone else doing conventional recovery):
In the past I've tried to read a bad sector with a hex editor / software data recover program and it showed the windows return code for the failed read, I've seen a different error code for CRC error (found the sector but its data is wrong) and couldn't even find the sector (IDNF). I've seen error codes other than those two when the drive disappears. Obviously windows is getting this from a conventional read. Do failed (conventional) reads have return codes in linux? If so this might be a version of the patch that would get accepted into the mainstream ddrescue (although perhaps not as fancy as what you have).
In such a version it could have something like a config file, if you get error code 23 or 1117 keep going, but if you get error code 2147549183 mark the last read as (bad|unread), and if you get any other return codes (other than success of course) mark the sector as un-tried and exit (need some sort of rolling log of recent errors for diagnostics).
23=CRC error
1117=IDNF(usually)
I've seen this line up with the smart log vs return code in the past.
February 10th, 2015, 19:08
KCn wrote:It seems that (windows) the "ReadFile" function throws an exception on a read error and info on that exception can be retrieved via the "GetLastError" function (both exported by kernel32.dll). Windows structured exception handling (SEH) deals with this. One might have to trace such an exception to see where the info is coming from.
Any heavy linux users(/coders) out there who know what the linux equivalent of the "ReadFile" function does when it encounters a read error? Throw an exception? Return a value?
A hard drive with a known (simple) bad sector or a CD full of test data with an intentional scratch may be adequate for testing.
February 11th, 2015, 22:56
I remember seeing something like that in dmesg, linux seems to be getting the message (as is windows) but I'm not sure how (if at all) linux is passing it to usermode. Here is something that looks like what I remember (will post a real example next time I capture one)maximus wrote:You need two separate types of errors to test this. The first is a normal read error, which can be from a drive with a real bad sector or you can make a bad sector using hdparm. The second type of error is one where the drive stops responding and will not return any more data until it is power cycled. There is a way to simulate this to a point, which is to use hdparm to lock a drive.KCn wrote:It seems that (windows) the "ReadFile" function throws an exception on a read error and info on that exception can be retrieved via the "GetLastError" function (both exported by kernel32.dll). Windows structured exception handling (SEH) deals with this. One might have to trace such an exception to see where the info is coming from.
Any heavy linux users(/coders) out there who know what the linux equivalent of the "ReadFile" function does when it encounters a read error? Throw an exception? Return a value?
A hard drive with a known (simple) bad sector or a CD full of test data with an intentional scratch may be adequate for testing.
Using passthrough commands the difference can be seen in the sense key. The bad sector will be a medium error (03), and a locked drive will be command aborted (0B). I had someone report a drive that actually would lock up and require a power cycle would report a hardware error (04).
I only know of two variables for a normal read in Linux (programming in C), the return value of the read and errno. In both cases, the return value of a read error is -1, and the errno is 5 (input/output error). So unless someone can point out another way, I am unable to tell the difference.
February 11th, 2015, 22:57
Powered by phpBB © phpBB Group.