All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 17 posts ] 
Author Message
 Post subject: Samsung HD501LJ (T166 family) - How to disable reallocation
PostPosted: August 2nd, 2017, 4:09 
Offline

Joined: December 5th, 2011, 5:38
Posts: 1106
Location: Italy
Hello,
i've this drive and i need data, when i power on heads do click like crazy and it stay in busy state.
I was able to clone about 25% of surface with hotswap from good donor drive, but now i'm stuck because there are a lot of bad sector in surface and when heads hit them DE is not able to jump those (drive goes busy and heads start again to click as before i did hotswap).
Unfurtunally i can't send hardware reset command in DE or even re-power the drive after read error due to hotswap condition (hotswap hundreds of time after every reading error is not an option), also soft reset and fast jump on bads don't help on surface portion that i've still to clone (drive starts again to click immediately after heads hit bads sectors).

I think problem is that FW is trying to automatically reallocate bad sectors, but is not capable to do that so it goes crazy.
Do you guys know a way how to disable automatic reallocation on this samsung drives as we do on WD drive (by editing mod 02) or Seagate drive (by editing sys 91 or by sending congen commands) ?

Also, i think S-list (mod 11) and D-list (mod 29) are corrupted on this drive but i don't know how to fix them. I think that could be another cause of this problem.
Can someone help me please?

I upload patient drive resource so that you might give a look to those modules, thank you :)
http://www.mediafire.com/file/ax18d6zl2 ... 826358.rar


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 3rd, 2017, 5:30 
Offline

Joined: December 5th, 2011, 5:38
Posts: 1106
Location: Italy
All modules and tracks are physically ok, but if you open S-list and D-list of this drive with an hex editor, then you will notice that are full of data.
If you compare these modules with those of a healthy donor, you will notice that donor's S and D list have many patterns with 00 and FF.

Does someone of you able to help me to fix S and D list, please?


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 4th, 2017, 16:37 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
Your RLIST (13h) and TLIST (12h) also look wrong.

If you could upload modules 11, 12, 13, 29, and 02 (FIT) from your donor, I could try to work out the structure of the modules.

BTW, when you say "hotswap", do mean "smart hotswap"?

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 5:37 
Offline

Joined: December 5th, 2011, 5:38
Posts: 1106
Location: Italy
Hi Frank,
yes i mean smart hotswap as written on AceLab forum:
http://forum.acelaboratory.com/viewtopi ... ng+hotswap

Here, i post all fw resource of donor drive:
http://www.mediafire.com/file/f8vfi2bsa ... 818444.rar

i hope that you can help me :)


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 16:59 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
That Ace thread describes a "smart hotswap". That is, the patient's critical modules are transferred to the donor's MC, and then the donor is restarted so that its PCB inherits the patient's defect lists, etc. If you had used an ordinary hotswap and then attempted to image the patient, the patient would have inherited the donor's defects when it tried to update the respective modules, ie after the first reallocation.

I verified that the FIT modules had identical directories, so I would think that this eliminates the possibility that the defects could have been written to the wrong CHS locations.

This is how I believe the donor's SLIST is structured:

Code:
Offset(h) 00   02   04
          Head  Cyl  Sec
          --------------
00000000  0000 CA0D 3E04
00000006  0000 F819 0080
0000000C  0000 F919 0080
00000012  0000 FA19 0080
00000018  0000 9A00 4F12
0000001E  0000 EF00 2712
........
000088CE  0100 11FF F641
000088D4  0100 11FF F741
000088DA  0100 11FF F841
000088E0  0200 1A03 8E40
000088E6  0200 3003 7342
000088EC  0200 3003 7442
........
00008E74  0200 8113 00D0
00008E7A  0200 8213 00D0
00008E80  FFFF FFFF FFFF
00008E86  FFFF FFFF FFFF
00008E8C  FFFF FFFF FFFF
........
0001FDEE  FFFF FFFF FFFF
0001FDF4  FFFF FFFF FFFF
0001FDFA  FFFF FFFF FFFF
0001FE00  0000 0000 0000
........
0001FFF2  0000 0000 0000
0001FFF8  0000 0000 0000
0001FFFE  0000 0000 CA0D
00020004  3E04 0000 F819
0002000A  0080 0000 F919

The data are little-endian.

There appears to be a limit of 21760 (= 0x1FE00 / 6) defects. Also, there is a copy of this defect list at offset 0x20000, and a second copy at 0x40000.

The defects in your patient's SLIST seem to be restricted to head 0, and the defect list is full, but not corrupt.

Code:
Offset(h) 00   02   04

00000000  0000 F200 D901
00000006  0000 F200 DA01
0000000C  0000 F200 DB01
00000012  0000 F300 E900
........
0001FDF4  0000 CE32 9224
0001FDFA  0000 CF32 9B23
0001FE00  0000 0000 0000
........
0001FE00  0000 0000 0000
0001FE06  0000 0000 0000

If you wish to clear (?) the SLIST, then you would ...

    fill the range from 0 to 0x1FDFF with 0xFF
    fill the range from 0x1FE00 to 0x1FFFF with 0x00
    copy 0 - 0x1FFFF to 0x20000 - 0x3FFFF and to 0x40000 - 0x5FFFF

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 17:18 
Offline

Joined: December 5th, 2011, 5:38
Posts: 1106
Location: Italy
I thought that S-list was damaged because when in Sediv i push the button for S-list defects show on patient drive, it returns me error.
I get same error also when i push the button for T-list defects show.
Probably it's software bug that is not able to open correctly defects list when are too much.


Code:
Your RLIST (13h) and TLIST (12h) also look wrong.

What can you say about T-list?
Does it really appear corrupted in your opinion?


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 17:37 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
I'm examining the other modules now. I'll post my analysis as soon as I have something. BTW, I see that the DLIST has a single copy at offset 0x1FE00. It is also full.

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 18:48 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
The DLIST has a 10-byte header. Your donor has 0x1762 records whereas your patient has 0x9B93. Each record has a length of 0xA bytes.

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

donor
00000000  44 4C 49 53 54 20 20 20 62 17              DLIST   b.
                number of records -----
00000000  44 4C 49 53 54 20 20 20 93 9B              DLIST   “›
patient

The data area is the range from 0x0A to 0x1FDFF. There is a copy of the DLIST at 0x1FE00. Empty records are padded with 0x00. There is no third copy as there is in the SLIST module.

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000                                00 00 9A 00 4F 12
00000010  1F 41 10 90 00 00 BE 00 27 53 1F 41 10 90 00 00
00000020  C0 00 F3 50 1F 41 10 90 00 00 EF 00 27 12 1F 41
........
0000E9C0  02 00 D3 0F F8 00 F0 F0 00 00 02 00 D3 0F F9 00
0000E9D0  F0 F0 00 00 02 00 D3 0F FA 00 F0 F0 00 00 00 00
0000E9E0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000E9F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
........
0001FDE0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0001FDF0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0001FE00  44 4C 49 53 54 20 20 20 62 17 00 00 9A 00 4F 12  DLIST   b...š.O.
0001FE10  1F 41 10 90 00 00 BE 00 27 53 1F 41 10 90 00 00

If we cut off the header, the data look like this:

Code:
Offset(h) 00   02   04   06   08
          Head  Cyl  Sec  ?    ?
          ---- ---- ---- ---- ----
00000000  0000 9A00 4F12 1F41 1090
0000000A  0000 BE00 2753 1F41 1090
00000014  0000 C000 F350 1F41 1090
0000001E  0000 EF00 2712 1F41 1090
........
00008002  0000 C1F7 6214 1F41 1090
0000800C  0000 2CF8 7A04 1F41 1090
00008016  0100 9202 F830 1F41 1090
00008020  0100 AE05 0753 F0F0 0000
........
0000E9C0  0200 D30F F900 F0F0 0000
0000E9CA  0200 D30F FA00 F0F0 0000
0000E9D4  0000 0000 0000 0000 0000

Since the DLIST records occupy the range from 0xA to 0x1FDFF, then it can accommodate a maximum of 0x32FF records.

    (0x1fe00 - 0xa) / 0xa = 0x32FF

The header of your patient's DLIST is reporting 0x9B93 records, ie a size of 0x613C8.

    (0xa x 0x9b93) + 0xa = 0x613C8

Therefore the DLIST has overflowed its allotted space, ie it is corrupt.

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

000613B0  64 2B 37 26 F0 F0 00 00 00 00 64 2B 38 26 F0 F0
000613C0  00 00 00 00 65 2B 3F 25 F0 F0 00 00 00 00 65 2B
000613D0  40 25 1F 41 10 90 00 00 65 2B 41 25 F0 F0 00 00

AISI, if you wish to clear (?) the DLIST, then you would fill it with 0x00 and write two headers, the first at 0x0 and the second at 0x1FE00

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  44 4C 49 53 54 20 20 20 00 00 00 00 00 00 00 00  DLIST   ........
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
........
0001FE00  44 4C 49 53 54 20 20 20 00 00 00 00 00 00 00 00  DLIST   ........
0001FE10  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 18:53 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
I think I was wrong about the TLIST. It looks OK.

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 19:19 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
I think I was also wrong about the RLIST. It looks OK. The reason I suspected this module is that it has no header.

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 20:24 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
The TLIST module appears to consist of a header and two data regions. The remainder of the module is filled with 0x00.

Here is your donor:

header

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  54 4C 49 53 54 20 20 20 00 60 00 01 00 01 00 00  TLIST   .`......
  number of records in region #2  ^^^^^ big-endian

region #1

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000010  67 98 67 A1 67 A1 67 A1 67 A1 67 A1 67 A1 67 AA
00000020  67 AA 67 AA 67 AA 67 AA 67 AA 67 B3 67 B3 67 B3
00000030  67 B6 67 B6 67 B6 67 C5 67 C5 67 C5 67 C5 67 C5
........
00000100  68 88 68 91 68 91 68 91 68 91 68 91 68 91 68 9A
00000110  68 9A 68 9A 68 9A 68 9A 68 9A 68 A3 68 A3 68 A3
00000120  68 A3 68 A3 68 A3 68 AC 68 AC 68 AC 68 AC 68 AC

region #2

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000130  19 F8 00 00 00 01 19 F9 00 00 00 01 19 FA 00 00
00000140  00 01 9E 1A 00 00 00 01 9E 1B 00 00 00 01 9E 1C
00000150  00 00 00 01 20 CC 00 01 00 01 20 CD 00 01 00 01
00000160  20 CE 00 01 00 01 51 22 00 01 00 05 9F 5B 00 01
00000170  00 40 9F 5D 00 01 00 00 AA 84 00 01 00 01 AA 85
........
00000340  20 9B 00 01 05 01 A5 3C 00 01 05 01 A5 3D 00 01
00000350  05 01 A5 3E 00 01 05 01 04 15 00 02 05 05 13 80
00000360  00 02 05 01 13 81 00 02 05 01 13 82 00 02 05 01
00000370  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

If we carve out these regions, they look like the following:

region #1 (6 heads)

Code:
Offset(h) 00   02   04   06   08   0A

00000000  6798 67A1 67A1 67A1 67A1 67A1
0000000C  67A1 67AA 67AA 67AA 67AA 67AA
00000018  67AA 67B3 67B3 67B3 67B6 67B6
........
000000FC  6891 689A 689A 689A 689A 689A
00000108  689A 68A3 68A3 68A3 68A3 68A3
00000114  68A3 68AC 68AC 68AC 68AC 68AC

I don't know why, but the pattern looks better if we cut the first word. It seems to be related to the number of heads in some way.

region #1 (after cutting first word)

Code:
Offset(h) 00   02   04   06   08   0A

00000000  67A1 67A1 67A1 67A1 67A1 67A1
0000000C  67AA 67AA 67AA 67AA 67AA 67AA
00000018  67B3 67B3 67B3 67B6 67B6 67B6
........
000000FC  689A 689A 689A 689A 689A 689A
00000108  68A3 68A3 68A3 68A3 68A3 68A3
00000114  68AC 68AC 68AC 68AC 68AC

region #2
Code:
          cylinder  head  ?   (big-endian)
          (lo / hi)
          ---------  --   --
00000000  19F8 0000  00   01
00000006  19F9 0000  00   01
0000000C  19FA 0000  00   01
00000012  9E1A 0000  00   01
00000018  9E1B 0000  00   01
0000001E  9E1C 0000  00   01
00000024  20CC 0001  00   01
0000002A  20CD 0001  00   01
00000030  20CE 0001  00   01
00000036  5122 0001  00   05
0000003C  9F5B 0001  00   40
........
000000BA  0451 0002  01   01
000000C0  0452 0002  01   01
000000C6  1869 0000  02   01
000000CC  186A 0000  02   01
........
00000120  0451 0002  02   01
00000126  0452 0002  02   01
0000012C  1BA3 0000  03   01
00000132  1BA4 0000  03   01
........
0000017A  0451 0002  03   01
00000180  0452 0002  03   01
00000186  231C 0000  04   01
0000018C  231D 0000  04   01
........
000001D4  1381 0002  04   01
000001DA  1382 0002  04   01
000001E0  1A61 0000  05   01
000001E6  1A62 0000  05   01
........
00000234  1381 0002  05   01
0000023A  1382 0002  05   01

The size of region #2 is determined from the header, ie ...

    0x6 x 0x60 = 0x240

In your patient's case the size is ...

    0x6 x 0x1D5 = 0xAFE

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  54 4C 49 53 54 20 20 20 01 D5 00 01 00 01 00 00  TLIST   .Õ......
                                  ^^^^^

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 5th, 2017, 20:27 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
I'm not sure that I have determined the CHS associations in the SLIST and DLIST correctly. Something doesn't look right. Regardless, the SLIST is still OK and the DLIST is still corrupt.

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 6th, 2017, 3:45 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
Isn't the SLIST the primary defect list? If so, then you shouldn't touch it unless it is damaged. Moreover, the drive should never write to it.

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 6th, 2017, 5:28 
Offline

Joined: December 5th, 2011, 5:38
Posts: 1106
Location: Italy
Thank you Frank, i will do some research and see if i can continue cloning the drive.

Code:
Isn't the SLIST the primary defect list? If so, then you shouldn't touch it unless it is damaged. Moreover, the drive should never write to it.

Yes, S-list is like P-list for seagate, sometimes as p-list it can get damaged due to new entries when there are bad sectors on surface.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 6th, 2017, 5:31 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
michael chiklis wrote:
Thank you Frank, i will do some research and see if i can continue cloning the drive.

Code:
Isn't the SLIST the primary defect list? If so, then you shouldn't touch it unless it is damaged. Moreover, the drive should never write to it.

Yes, S-list is like P-list for seagate, but as p-list it can get damaged due to new entries.

Did you or someone else move the G-list to the P-list? This would explain why the SLIST is full.

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 6th, 2017, 5:43 
Offline
User avatar

Joined: September 8th, 2009, 18:21
Posts: 9796
Location: Australia
Your RLIST module has several sections. I have made some guesses as to their structure. (The donor's RLIST is empty, so I have no proper comparison.)

RLIST -- 0 - 0x3FFF

Code:
Offset(h) 00   02   04    06   08   0A    0C   0E
          Cyl  Head Sec   Cyl  Head Sec   Attr Err?
          ---- ---- ----  ---- ---- ----  ---- ----
00000000  06E6 0000 1014  06E6 0000 1014  0044 1140
00000010  2DAB 0000 41DE  2DAB 0000 41DE  0044 1301
00000020  73FD 0000 04CA  73FD 0000 04CA  0044 1301
00000030  73FE 0000 0039  73FE 0000 0039  0044 1301
00000040  750B 0000 439C  750B 0000 439C  0044 1301
00000050  750B 0000 439D  750B 0000 439D  0044 1301
........
00000730  B47A 0000 5488  B1F0 0000 500D  0004 1140
00000740  B481 0000 5417  B481 0000 5417  0044 1301
00000750  FD49 0000 2406  0319 0001 2000  0004 1140
00000760  FD4A 0000 23C1  0319 0001 2001  0004 1140
00000770  7E7A 0001 417E  7E7A 0001 417E  0044 1140

    0x1140 = uncorrectable read error
    0x1301 = unknown error code ?
    Attr = attributes

RLIST -- 0x4000 - 0x41FF

Code:
Offset(h) 00   02   04   06

00004000  FD4A 0000 0002 03C1
00004008  FD49 0000 0002 0406
00004010  FD49 0000 0002 0264
00004018  FD48 0000 0002 036D
00004020  B40C 0000 0005 04E3
00004028  B3CB 0000 0005 0032
00004030  B3CC 0000 0005 0488
00004038  B3CD 0000 0005 03BC
00004040  B3CF 0000 0005 0224
........
00004168  B470 0000 0005 023B
00004170  B471 0000 0005 016F
00004178  B47C 0000 0005 02F0
00004180  B47F 0000 0005 008D
00004188  B480 0000 0005 04E3

The following section of the module looks like "noise". The last 0x200 bytes are a copy of the first 0x200. The data are incompressible using WinRAR.

RLIST -- 0x4200 - 0x43FF

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00004200  6D 93 2C 57 E3 2F CF D8 8A 71 20 82 18 C5 DC 51
........
000043F0  58 9F 61 07 54 D5 3B 17 81 4F D1 CD AA 80 87 53

RLIST -- 0x4400 - 0x45FF

Code:
00004400  6D 93 2C 57 E3 2F CF D8 8A 71 20 82 18 C5 DC 51
........
000045F0  58 9F 61 07 54 D5 3B 17 81 4F D1 CD AA 80 87 53

_________________
A backup a day keeps DR away.


Top
 Profile  
 
 Post subject: Re: Samsung HD501LJ (T166 family) - How to disable reallocat
PostPosted: August 6th, 2017, 6:34 
Offline

Joined: December 5th, 2011, 5:38
Posts: 1106
Location: Italy
fzabkar wrote:
Did you or someone else move the G-list to the P-list? This would explain why the SLIST is full.


No Frank, i didn't.
I know that G to P list (or R to S list) can lead to bad data recovery operation, so i never do that.
I don't know what customer has did to this drive and if he sent it to some other DR company before me.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 17 posts ] 

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: Exabot [Bot] and 44 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