All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 86 posts ]  Go to page Previous  1, 2, 3, 4, 5
Author Message
 Post subject: Re: WD400JB cannot read sectors from 30GB to 35GB
PostPosted: June 4th, 2016, 5:36 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 10828
Location: Portugal
Roberto wrote:
Spildit wrote:
What could have happened is that your cloning software is somehow flagging the sectors as good or somehow those sectors were added to the G-List by your software.

I cannot imagine that. My cloning tool has no implementation for such things..... at least as far as I know and understand the source-code.

Spildit wrote:
Do run MHDD/Victoria on the drive and scan it. It should find bad sectors at the start and across the drive.

This is the scan result with API mode
Attachment:
Pic2.PNG

Interestingly it differs from the scan in PIO mode
Attachment:
Pic5 (PIO).PNG

Spildit wrote:
If so those bad sectors are still there and your software is just cloning the drive taking the data it can from the sectors and considering them as good ?

How could this be done without vendor specific commands? I don't think my cloning tool has built in VSCs.
I thought reading defective sectors with bad checksums could only be read by VSCs, or am I wrong? :shock:

Spildit wrote:
I'm sure that the drive have those 180 bad sectors. I didn't remap them to the G-List. Maybe your software managed to do so. Check S.M.A.R.T. and you should see the number of relocated sectors.

Smart Data (see screenshot in last post) seems to be similar to your screenshot.

Spildit wrote:
At any rate, do you have the totality of the data that you wanted intact ?

As far as I can see ALL the data from the important partition is there.
But I cannot confirm that until the owner tells me the same.
He hasn't picked up his drive till now :wink:

I think this should happen in the next days.
Please keep the image file till I get the OK from the owner.



If your cloning tool is using the same method as a OS API rather then issuing direct I/O to the drive then results might be like when scanning with windows API and PIO.

TRUE response from the drive is aquired from PIO. Maybe OS is trying to compensate for the errors and sending to victoria data that is not exactly the same data that the drive is outputing to the OS.

Your OS (windows) is not shoing to victoria the sectors that have it's ID not found and are uncorrected. If the same happens with your cloning tool using some sort of OS API then the same might happen. Tool sends request to the OS instead to use direct I/O to the drive.

You don't need vendor specific commands to read sectors with bad checksum. READ LONG for instance is a standard ATA command. Doing several normal standard reads to attempt a good read unsing normal standard ATA commands is an option as well.

http://www.hddoracle.com/viewtopic.php?f=59&t=1228


Regards !

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD400JB cannot read sectors from 30GB to 35GB
PostPosted: June 4th, 2016, 5:52 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 10828
Location: Portugal
xsoliman wrote:
Wow, some amazing work and write up there

The obvious big question is
How is the HRT tool ? able to regenerate the translator and how on earth can it get it correct ?
(your article explains why it is so important to get right and also implies its impossible to recreate unless you get very lucky)

Re 'hardware cloning' - its still reading sectors via the sata interface using standard commands and skipping areas you have defined etc, so I still don't really see any hardware 'magic' in this
(with the exception of the ability to power cycle the drive automatically)
Also discussed on an earlier thread
https://forum.hddguru.com/viewtopic.php?f=1&t=26864

Thanks


Hi !!!

The translator is REGENERATED BY THE DRIVE ITSELF not HRT :

Image

Issue the Super on to gain access to other VSC and send the ATA command to regenerate translator for this specific cyl 32 drive (WDC MCU). The drive does the work internaly . Wait for BSY to lit off and for drive to report readyness and drive seek completed.

Hardware tools can bypass BIOS/motherboard and OS API.

OS can lie and show that all sectors are ok to the tools while they are not. USE PIO/DIRECT I/O instead. Even so the BIOS can prevent the exact correct data that the drive have on the buffer to be retrieved. Read here - http://www.hddoracle.com/viewtopic.php?f=59&t=1228

Hardware can also power cycle as you mentioned and keep the OS and system "happy" even when the bad drive is sending bogus data to the channel. You might not even be able to boot or run a system with a bad drive plugged to it while the hardware card keeps the system happy and interects with the drive at I/O level.

Also advantage of hardware card is that the system is not accessing the drive at the same time the firmware tool is. For example MANY PEOPLE brick their drives by writtting ROM code to them while using the drive plugged to the OS at the same time. OS and firmware tool accessing the drive at the same time and requesting/sending buffer data is a ... BAD IDEA !!!

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD400JB cannot read sectors from 30GB to 35GB
PostPosted: June 4th, 2016, 5:56 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 10828
Location: Portugal
xsoliman wrote:
And only part of the translator 'array' was damaged in this case
(before you fixed it)


Yes.

And look here on this example of an more recent Marvel based drive (saber) :

http://www.hddoracle.com/viewtopic.php? ... =100#p8487

You can even "destroy" the translator and clear it and then re-gen it if you want to !!!

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD400JB cannot read sectors from 30GB to 35GB
PostPosted: June 5th, 2016, 5:06 
Offline

Joined: March 30th, 2016, 12:29
Posts: 124
Location: Germany
Spildit wrote:
If your cloning tool is using the same method as a OS API rather then issuing direct I/O to the drive then results might be like when scanning with windows API and PIO.

Unfortunately the Cloning tool does not use direct access to the hard drive.
Instead it goes "over" the BIOS and uses extended INT13 calls.
It runs under pure DOS.
I cannot imagine the BIOS or old DOS "repairing" bad sectors or "faking" them as good. :? But I may be wrong, of course.
Maybe the "fake good sectors" come from the controller (Dawicontrol)?
But why the difference to before you repaired the translator?
Is it possible that the controller distinguishes "different types" of bad sectors?
Or is it maybe the "talking" between the controller and the firmware with the repaired translator?

Spildit wrote:
TRUE response from the drive is aquired from PIO. Maybe OS is trying to compensate for the errors and sending to victoria data that is not exactly the same data that the drive is outputing to the OS.

Your OS (windows) is not shoing to victoria the sectors that have it's ID not found and are uncorrected. If the same happens with your cloning tool using some sort of OS API then the same might happen. Tool sends request to the OS instead to use direct I/O to the drive.

Ok this sounds compelling to me, because I ran victoria from an Windows Live Environment (PE).
And I don't have much trust in windows for its treatment of hard drives :lol:

Spildit wrote:
You don't need vendor specific commands to read sectors with bad checksum. READ LONG for instance is a standard ATA command. Doing several normal standard reads to attempt a good read unsing normal standard ATA commands is an option as well.

This sounds very interesting, because this opens the possibility to improve the cloning abilities of my tool :D

Thank you very much for your specialist input.
This helps me understand the things better and maybe improving my cloning solution in the future if i find the time for.


Top
 Profile  
 
 Post subject: Re: WD400JB cannot read sectors from 30GB to 35GB
PostPosted: September 11th, 2016, 16:11 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 10828
Location: Portugal
Well, I'm leaving this info here on this somewhat "old" thread just as reference :

- The BIOS or the OS will NOT fix (or re-locate) bad sectors by their own. When a sector is found to be bad by READING to it the drive places it on a pending list and only when someone attempts to WRITE to that sector if the drives considers that it's no longer possible to re-use the sector (because it can't write properly to it) then the sector is re-mapped. This of course have exception as there are drives that will swap a bad sector for a spare even on the READ event if the ECC of a sector is incorrect, etc ...

- Using testing tools like Victoria for windows at the same time the OS is running (windows) and accessing the drive that you are testing might mess the results. The same if there are tasks running on the system that can interfere with Victoria.

- Translator is internal to the drive. If it no longer "translates" some LBAs to internal place then you can't access those LBAs no matter what you do from the outside of the drive and no matter what tools or OS you use to read the drive (unless you know internal C/H/S location and you can build a virtual translator and convert by software LBA to internal C/H/S and use VSC to read those location to match each LBA you want to dump. Also you would have to take intro account the defect lists and the shifts to the virtual translator and you would need to know where to start to read, etc ...

- If you could figure out for each drive maker what VSC they use to convert one LBA to internal C/H/S you could "map" LBA to specific HEADS and you could clone by head. This would allow for better handling drives with dead heads and would allow to retrieve data using the working heads !

- The big point here is that with a partially broken translator you can't access to a certain portion of data because the you can no longer address some LBAs to the internal place on the platter where those LBAs are stored !!!

Regards and have a nice day !

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
 Post subject: Re: WD400JB cannot read sectors from 30GB to 35GB
PostPosted: September 11th, 2016, 17:37 
Offline
User avatar

Joined: December 19th, 2006, 8:49
Posts: 10828
Location: Portugal
I'm leaving this here as well for future reference :

I'm using one WD200BB drive as example (WDC MCU based) as i don't have here any WD400JB to use on the example but it would be something like this :

Attachment:
1.jpg
1.jpg [ 67.94 KiB | Viewed 2708 times ]


This shows the first entries on my drive translator. Here we can see to what specific loccation on the drive (sector) a portion of data will be Read/Written to when a specific LBA is requested by the OS/APP outside of the drive.

Now let's say that i can delete entries from my list (damage the translator) :

Attachment:
2.jpg
2.jpg [ 63.71 KiB | Viewed 2708 times ]


Now if i were to clone/image this drive as soon as the software cloning the drive - like ddrescue for example - reached LBA 7 the equest woul go to the drive, the drive wouldn't know where to find that sector and it would react with some sort of error depending from drive to drive. Some could just hang in bsy, others like yours could do funny stuff like power off-on, stop to spin, whatever. At the drive level the "problem" would make it impossible to retrieve the data on those LBAs as the drive itself wouldn't know any longer where the data was. This was EXACTLY what happened on this particular case.

Getting the translator repaired by re-generating it based and acounting for the specific defect list of the drive would allow to regain access to the sectors and recover the data.

This problem is typical for those old WDC drives based on WDC MCU. They suffer this sort of translator issue allot.

What the command to regen the translator does is to request internaly to the drive to check some defect lists and create a translator again taking intro acount the defects. This process is done internaly by the drive and not by the firmware tool. The firmware tool on this case just asks the drive to execute the process. This is diferent from a "virtual translator" where you grab the necessary files and do the translator outside the drive (by software) and usethat translator to read directly to internal physical locations.

By the way it's now possible to grab firmware modules on those old WD CYL 32 drives WDC MCU based using the following tools and the free MHDD :

http://www.hddoracle.com/viewtopic.php? ... =100#p8854

This might be of use to someone facing the same problem in the future, so i'm leaving this on this thread as reference as well.

Regards.

_________________
1Q9xrDTzTddUXeJAFRn37aqh1Yr6buDCdw - (Bitcoin Donations)
paypal.me/Spildit - (PayPal Donations)
The HDD Oracle - Platform for OPEN research on Data Recovery.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 86 posts ]  Go to page Previous  1, 2, 3, 4, 5

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: Google [Bot] and 77 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group