Data recovery and disk repair questions and discussions related to old-fashioned SATA, SAS, SCSI, IDE, MFM hard drives - any type of storage device that has moving parts
Post a reply

Re: WD2000JD problem

May 1st, 2013, 8:39

See http://hddscan.com/doc/HDD_Tracks_and_Zones.html

Re: WD2000JD problem

May 1st, 2013, 9:15

^^ that was already posted on this topic,, I think..

WD has some "drive tables"..which are available only for "VDT drives". but what's vdt? :)

@fzabkar do you have any idea how LBA gets incremented over the tracks/sectors?

let's say we have a 2 headed drive with 5 zones

H0 tracks 1-n
H1 tracks 1-n

the LBA will go from H0 track 1->n through each one of the 5 zones...or it jumps from time to time to H1?

do I'll have at the end one big linear LBA which it's on head 0 and one for H1?

that's what I'm trying to find now.

Re: WD2000JD problem

May 1st, 2013, 13:50

I don't need x.0..I'm building my tool. the zone table seems to be 5 for marvel drives..and 13 for the newest royl. I'll have to convert the LBA to CHS and see how the lba follows the heads.

Re: WD2000JD problem

May 1st, 2013, 14:53

yo people..you don't want to help a little. :lol:


LBA=((C \times HPC) + H ) \times SPT + S -1

Code:
    C, H and S are the cylinder number, the head number, and the sector number
    LBA is the logical block address
    HPC is the maximum number of heads per cylinder (reported by disk drive, typically 16 for 28-bit LBA)
    SPT is the maximum number of sectors per track (reported by disk drive, typically 63 for 28-bit LBA)


let's take H=0 s=1 C=0, 4 heads per cyl.

lba will grow from 0 to SPT for Head 0..and then follows LBA's for Head 1.

which means that the data it's written on a track..then it jumps at the same track..on next head. files bigger than SPT*512 have greater chance ending on multiple platters! so if you have a head dead..don't know what you can recover. small files?

on the other hand..if I recovered an entire partition..the I can bet that there's no problem with a head...because that head would have given me problems on the entire surface.
Last edited by louis on May 1st, 2013, 15:05, edited 1 time in total.

Re: WD2000JD problem

May 1st, 2013, 15:03

Indeed, it jumps from head to head on most of the modern drives where the recording is taking place perpendicularly.

Some modern drives, Samsung in particular, have larger zones on a given head, therefore increasing the possibility of recovering "bigger" files.

Needless to say, WD, Seagate, as you said, chances are very slim to recover from.

Re: WD2000JD problem

May 1st, 2013, 15:30

labtech wrote:Indeed, it jumps from head to head on most of the modern drives where the recording is taking place perpendicularly.

Some modern drives, Samsung in particular, have larger zones on a given head, therefore increasing the possibility of recovering "bigger" files.

Needless to say, WD, Seagate, as you said, chances are very slim to recover from.


Old Maxtor even worse, tiny zones!

Re: WD2000JD problem

May 1st, 2013, 16:35

louis wrote:@fzabkar do you have any idea how LBA gets incremented over the tracks/sectors?

let's say we have a 2 headed drive with 5 zones

H0 tracks 1-n
H1 tracks 1-n

the LBA will go from H0 track 1->n through each one of the 5 zones...or it jumps from time to time to H1?

AIUI, the LBAs are incremented in serpentine fashion, just as you have described. I don't think that the full zone is necessarily accessed before switching to the next head. In fact the Tracks and Zones article picks an arbitrary figure of 100 tracks, so clearly that's only a small portion of the zone.

You could probably estimate the size of each block of tracks by examining the MHDD scan results. Calculate the capacity of each block in the map, estimate the average distance between each bad block (approximately 7 blocks), and then divide by four. AFAICS that should give you the size of each serpentine group. From the zone table you could work out the number of tracks in that group.

Re: WD2000JD problem

May 1st, 2013, 17:03

looking here:

I decoded the LBA's for the picture I've take under dos

LBA: 119061878 converted to cylinder 14940 head 1 sector 686
LBA: 119063484 converted to cylinder 14939 head 1 sector 195
LBA: 119066856 converted to cylinder 14938 head 1 sector 1470
LBA: 119068462 converted to cylinder 14937 head 1 sector 979
LBA: 119070068 converted to cylinder 14936 head 1 sector 488

1. MHDD sends VERIFY SECTORS command with LBA number and
number of sectors to verify as parameters
2. DRIVE raises BUSY flag
3. MHDD starts timer
4. After drive executes VERIFY command, it drops BUSY flag
5. MHDD counts the time and puts corresponding block
on the screen. If error occures MHDD prints corresponding
letter which describes the error.


"bads" from this image are in the Zone 2 with 2024 SPT. all on Head 1....but not around same sector. 2024/255 = 7...the size of a track..in mhdd blocks
MHDD scans drives by blocks. For IDE/SATA drives one block is 255 sectors


I couldn't log the result since the dos ram disk wasn't large enough to fold mhdd's log :P

Re: WD2000JD problem

May 1st, 2013, 18:50

VDT - variable data track

a 4 headed drive:

Code:
Current Head = 0x0
No. of Zones = 21
Zone 0
---------------
First Virt. cyl .. = 0xffffff56 (-170)
Last Virt.  cyl... = 0xffffffff (-1)
SPT .............. = 0x051f (1311)
Zone 1
---------------
First Virt. cyl .. = 0x0000 (0)
Last Virt.  cyl... = 0x39d2 (14802)
SPT .............. = 0x0816 (2070)
Zone 2
---------------
First Virt. cyl .. = 0x39d3 (14803)
Last Virt.  cyl... = 0x6f3b (28475)
SPT .............. = 0x07e8 (2024)
Zone 3
---------------
First Virt. cyl .. = 0x6f3c (28476)
Last Virt.  cyl... = 0x9848 (38984)
SPT .............. = 0x07c3 (1987)
Zone 4
---------------
First Virt. cyl .. = 0x9849 (38985)
Last Virt.  cyl... = 0xd450 (54352)
SPT .............. = 0x078c (1932)


Code:
Current Head = 0x1
No. of Zones = 21
Zone 0
---------------
First Virt. cyl .. = 0xffffff56 (-170)
Last Virt.  cyl... = 0xffffffff (-1)
SPT .............. = 0x051f (1311)
Zone 1
---------------
First Virt. cyl .. = 0x0000 (0)
Last Virt.  cyl... = 0x3bff (15359)
SPT .............. = 0x0831 (2097)
Zone 2
---------------
First Virt. cyl .. = 0x3c00 (15360)
Last Virt.  cyl... = 0x65b7 (26039)
SPT .............. = 0x0816 (2070)
Zone 3
---------------
First Virt. cyl .. = 0x65b8 (26040)
Last Virt.  cyl... = 0xa2a7 (41639)
SPT .............. = 0x07e8 (2024)
Zone 4
---------------
First Virt. cyl .. = 0xa2a8 (41640)
Last Virt.  cyl... = 0xcdc7 (52679)
SPT .............. = 0x07ba (1978)


Code:
Current Head = 0x2
No. of Zones = 21
Zone 0
---------------
First Virt. cyl .. = 0xffffff56 (-170)
Last Virt.  cyl... = 0xffffffff (-1)
SPT .............. = 0x051f (1311)
Zone 1
---------------
First Virt. cyl .. = 0x0000 (0)
Last Virt.  cyl... = 0x39d2 (14802)
SPT .............. = 0x0816 (2070)
Zone 2
---------------
First Virt. cyl .. = 0x39d3 (14803)
Last Virt.  cyl... = 0x6f3b (28475)
SPT .............. = 0x07e8 (2024)
Zone 3
---------------
First Virt. cyl .. = 0x6f3c (28476)
Last Virt.  cyl... = 0x9848 (38984)
SPT .............. = 0x07c3 (1987)
Zone 4
---------------
First Virt. cyl .. = 0x9849 (38985)
Last Virt.  cyl... = 0xd450 (54352)
SPT .............. = 0x078c (1932)


Code:
Current Head = 0x3
No. of Zones = 21
Zone 0
---------------
First Virt. cyl .. = 0xffffff56 (-170)
Last Virt.  cyl... = 0xffffffff (-1)
SPT .............. = 0x051f (1311)
Zone 1
---------------
First Virt. cyl .. = 0x0000 (0)
Last Virt.  cyl... = 0x4543 (17731)
SPT .............. = 0x078c (1932)
Zone 2
---------------
First Virt. cyl .. = 0x4544 (17732)
Last Virt.  cyl... = 0x705f (28767)
SPT .............. = 0x0764 (1892)
Zone 3
---------------
First Virt. cyl .. = 0x7060 (28768)
Last Virt.  cyl... = 0xa33b (41787)
SPT .............. = 0x0747 (1863)
Zone 4
---------------
First Virt. cyl .. = 0xa33c (41788)
Last Virt.  cyl... = 0xd237 (53815)
SPT .............. = 0x071d (1821)


the Zones have different SPT (sectors per track) for each head. the track from cyl x has one size on one head..and another size on another!! the LBAs won't be distributed evenly on the same track on cylinder.

how will affect this the LBA formula :?:

Re: WD2000JD problem

May 2nd, 2013, 16:18

Your defective LBAs are near the beginning of the drive, at about the 60GB mark. You stated that you have already recovered that partition, so I don't understand why you are looking in this area. Wouldn't it be better to try to clone the rest of the drive before the head fails completely, assuming it really is a head fault?

Anyway, I'm puzzled by the "X" and "A" blocks in your MHDD screen shot. If you look at the second line of "X" blocks, there is an "X" in columns 1 and 57, and there are 9 groups of blocks. This works out to about 1600 sectors per group.

(56 / 9) x 255 = 1587

The same calculation for the long line of "A" blocks produces a similar result.

(51 / 8) x 255 = 1626

There appear to be about 70 such groups across the centre of the screen.

To me it is tempting to see this as 70 consecutive tracks on the same surface, with defects at the same position in each track. But your SPT values are much higher, so there must be some other explanation.

Re: WD2000JD problem

May 2nd, 2013, 16:53

one partition..luckily the most important was recovered 100% :) but I don't know..didn't investigate where it's positioned.

MHDD states that it's scanning LBA's...so I assume that it does a sort of LBA+=255; verify(LBA, 255). it doesn't know what head is..or where it is. and we saw that..after a round of sectors per track..the LBA jumps to another disk surface. and since SPT is around 1500-2000 sectors..if we divide at MHDD's block..(255 sectors) we find that after 5 to 7 graphic blocks we are on another surface of a platter. so it is very strange to have the same pattern on all surfaces...unless the adaptives are all bad for all heads in that area.

meanwhile...i'm testing a function which reads by CHS..so it's stay on one head for all its tracks. while doing so..the drive became very unresponsive, degraded constantly aka more and more busy between commands. finally I was forced to do a clear Glist + rebuild translator to bring it again on the action. now I'm verifying with my own function each head's tracks...from 0 to max...to see it it's one head defect or all the others. well..all have errors after cylinder 15.000, usually 200-300 tracks. I read an entire track and don't search a specific bad lba. I quit at first error on track.

I flashed also a donor PCB and things didn't changed. the patient was dead due to a power failure..with dead mobo,surge etc.

Re: WD2000JD problem

May 7th, 2013, 17:04

here's a log with each head/surface...track reading test. there are about 200k tracks/head. the errors on each head expands on tracks from 0 to 99k. from 100k to 200k tracks..seems to be fine. also, the errors per head grows from H0 to H3, which I believe it's the most exposed when somebody open the case. but how come that only half of the disks' surface has errors on all heads and the rest not? :?:
Attachments
CK_Read.zip
(170.98 KiB) Downloaded 914 times

Re: WD2000JD problem

May 17th, 2013, 7:49

where I can make a PCB CON1 connecter (or how) :?: 2 needles doesn't fit on 2 adjacent connection points there :)

Image

Re: WD2000JD problem

May 18th, 2013, 20:47

100++$ connector :?

the pinout it's close to DEJAN's

Re: WD2000JD problem

May 19th, 2013, 4:58

Table 3.2 appears to have a similar pinout:
http://support.atmel.no/knowledgebase/a ... tor_pinout

The connector is specified as the following:
http://www.te.com/catalog/pn/en/2-5767004-2

Product drawing:
http://www.te.com/commerce/DocumentDeli ... -5767004-2

Tyco's web site is offering free samples (don't all rush at once). Otherwise it is available over here for AU$14.

Re: WD2000JD problem

May 19th, 2013, 5:25

fzabkar wrote:Tyco's web site is offering free samples (don't all rush at once). Otherwise it is available over here for AU$14.


the conn name it's spec in a link in my prev post.

the pb is what you stick inside that connector. I want to use it without any soldering. just pressure. that it's the receptacle. and doesn't solve anything. to connect it with jtag I need a breakout with 38 pins for my jtag wires, this breakout must fit inside that conn. the pair Receptacle / Plug breakout ... 100++$ :evil: the real value it's few $ but they sell it as gold.

Re: WD2000JD problem

May 19th, 2013, 6:05

Is this what you are looking for?

http://www.ebay.com.au/itm/MICTOR-Adapt ... 43b9527198
http://www.ebay.co.uk/itm/MICTOR-Adapte ... 43b9527198

The seller states "If you don't want the dual row headers installed let me know..."

Otherwise, why not order the matching plug and socket as free samples and then you may not need a breakout board?

Re: WD2000JD problem

May 19th, 2013, 6:24

louis wrote:the conn name it's spec in a link in my prev post.

Sorry, I did try to access that link, but my old version of Opera didn't render it properly. I can now see it in another browser (which doesn't support Javascript).

Re: WD2000JD problem

May 19th, 2013, 6:44

just plug+socket are useless. get some wires and try to touch the CON1 connectors and you'll understand. the breakout spreads the connectors letting you work with the interface. it makes a jump from mirco level to our hand possibilities.

the ebay stuff could work but with some mods. ie..brackets soldered on the other side of the pcb (we must have easy access with wires after touching con1)..and instead socket..must be the plug..which then we connect to a socket..which in the final we put it in contact with CON1 pin zones. I don't know if the plug or socket have the same specs for soldering surface (checked only what's soldered in that image..and that match the con1 contacts)...which comes in contact with con1. if yes...the that ebay stuff could work as is.

Re: WD2000JD problem

May 19th, 2013, 7:03

also, it's desirable that the adapter's pcb to have a vertical format...offering us a good view of con1 since we don't solder nothing there.
Post a reply