Forum: IDE HDD Discussion - Discussion about the use of the IDE HDD Interface and hdloader related discussion.


The above video goes away if you are a member and logged in, so log in now!




 
Would you like to get all the new info from
PSX-Scene in your email each day?




Want to learn more about the team keeping you up to date with the latest scene news?

Read about them now!

Check out our Developer bios, too!

 


User Tag List

Thread: help!! unrecoverable parition errors
  

Results 1 to 10 of 10
  1. #1 Exclamation help!! unrecoverable parition errors 
    goges is offline Registered User
    Join Date
    Aug 2004
    Posts
    8
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    when i installing game with winhiip 1.6.2
    suddenly pop up error message
    "there are unrecoverable partition errors (Partition Collsion)

    then i tried use hdl_dump toc, it say partition error also
    then i tried to delete all *.bin in Winhiip directory
    still have same message

    but when i put my hdd into PS2 it can still run HDAdvance and still can run the game i installed before (winhipp and DVD)

    anyway i can fix the partition problem ?
    or anyway i can backup (extract) all the game in my HDD?

    someof them i dont have disk
    Reply With Quote  

  2. #2  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    Find DMS HDDFormat. This can be used to erase damaged partitions.

    A collision should mean that two partitions are defined to use the same data area.
    Normally the partition that was added latest of the two is responsibe for the error,
    and hopefully all will be well after erasing only that latest partition. But if some of
    the conflicting sectors were overwritten with new data, then both of the involved
    partitions may need to be erased.

    More complex variations are possible, but rare, and beyond the scope of my help
    in any case. If many partitions claim to use the same storage space, then the
    only safe thing to do is to reformat and start over.

    Best regards: dlanor
    Reply With Quote  

  3. #3  
    goges is offline Registered User
    Join Date
    Aug 2004
    Posts
    8
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    thanks alot ... but i will try to get my games back first ..
    coz some of them i dont have disk
    Reply With Quote  

  4. #4  
    alucard_x is offline Member
    Join Date
    Sep 2002
    Posts
    294
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    is it a good idea to just erase games using the DMS format tool then?
    Reply With Quote  

  5. #5  
    GadgetFreak is offline Member
    Join Date
    Feb 2003
    Location
    Africa
    Posts
    167
    Downloads
    1
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    goges I would extract all the images you don't have the disc for, if you have the HD space to store them on your pc that is. Then erase the drive and start again.
    In theory you don't need to do this but it is sometimes easier than trying to find the problem. If you have the 'log' & debug 'bin' files from WinHIIP I should be able to tell you which partitions are colliding. PM me and I will see what I can do.
    Reply With Quote  

  6. #6  
    theskillster is offline Member
    Join Date
    Aug 2004
    Posts
    126
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    ive had a similar error before, but i do know i lost my ps2 hdd (everything on it) cos of a partition error,
    I think there was a bad sector on the hdd, would u like the logs?
    Reply With Quote  

  7. #7  
    DoubleOKapp is offline Registered User
    Join Date
    Aug 2004
    Posts
    5
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    Can anyone pm a link to the dms hddformat tool. I am not having any luck finding it thru any searches.
    Sidewayz to tha next life...
    Reply With Quote  

  8. #8  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    DoubleOKapp:
    DMS HDDFormat is one of the tools which Zer0-X has successfully (in part) adapted for support of larger disks (using 48-bit LBA). You'll find an attachement in the first post of the 'sticky' thread entitled "DMS3 HDD Tools 48bit patched". I'm surprised you could miss it...

    The only limitation of its 48-bit support is that some of the calculations for display of partition data only use shorter variables, resulting in incorrect numbers on display. Internally the drivers do use correct values.

    Edit:
    ---- Zer0-X just released a new version of HDDFormat, patched such that
    ---- even the display of huge partition info is correct. (In that same thread.)
    Best regards: dlanor
    Last edited by dlanor; 10-08-2004 at 02:53 PM.
    Reply With Quote  

  9. #9  
    thereal_zap is offline Member
    Join Date
    Sep 2004
    Posts
    189
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    read this tutorial on doing this stuff manually.

    it's a bit lengthy, but it will certainly help with your problems.

    if something wrong has happened with a game installation using either
    hdl_dump or winhiip and your disc is now unreadable do not despair!
    check out the following information to get your disc back in working
    order. this is not for the faint of heart or complete newbies. although
    if you follow the instructions, i don't see why anyone couldn't do this.

    to do this you will need winhex or some other editor that is able to
    write directly to your hdd.

    the first thing you should do before ANY install is to use the TOC
    list feature of hdl_dump. this will show not only the main partition
    sectors, but also the sub-partitions. copy and save this info to a text
    file.

    use the command line:

    hdl_dump toc hddX:

    (hddX, where X is the number of your ps2 hdd)

    most of the time when 'corruption' occurs is when the APA partition chain
    has been broken, or somehow otherwise tweaked. the scope of this little
    tutorial is how to go about fixing the chain to restore your drive to its
    original state prior to to corruption.

    the first thing you want to do is to examine the _mbr partition at
    offset 0x00000000.

    it should resemble something like this:

    00000000 13 0A 2F 7F 41 50 41 00 00 00 04 00 00 00 1C 0B ../APA.........
    00000010 5F 5F 6D 62 72 00 00 00 00 00 00 00 00 00 00 00 __mbr...........
    00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000040 00 00 00 00 00 00 04 00 01 00 00 00 00 00 00 00 ................
    00000050 00 2D 32 0B 13 06 D4 07 00 00 00 00 00 00 00 00 .-2...Ô.........
    00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    000000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    000000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000100 53 6F 6E 79 20 43 6F 6D 70 75 74 65 72 20 45 6E Sony Computer En
    00000110 74 65 72 74 61 69 6E 6D 65 6E 74 20 49 6E 63 2E tertainment Inc.
    00000120 02 00 00 00 00 00 00 00 00 2D 32 0B 13 06 D4 07 .........-2...Ô.

    the rest of this parition is filled with 00's up to the next partition.

    let's break down what we're really looking at here:

    ***********checksum************next*partition*sect or
    ***************|**********APA***********|**last*pa rtition*sector
    ***************|***********|************|********* **|
    ***************V***********V************V********* **V
    **********/*********\*/*********\**/*********\*/*********\
    00000000 13 0A 2F 7F 41 50 41 00 00 00 04 00 00 00 1C 0B ../APA.........

    so let's say that your previous TOC report shows that your last partition sector
    is really 0CA00000. in this case, it is now reporting that 0B1C0000 is the last
    sector.

    to fix this we need to change the last sector value and adjust the checksum value.
    the checksum algorithm is a simple one, all it does is (starting at offset xxxxxx04)
    add the dword (32 bit) values in the header and that is the result. for our purposes
    we don't need to add up all the values again. instead, we are just going to adjust
    the existing checksum value by subtracting the value(s) in which we are replacing and
    then adding to it the value(s) of the replacement value.

    let's break this down even more. using the above information here's what you need to
    do:

    7F2F0A13 (checksum value)
    -0B1C0000 (current last sector value)
    ---------
    74130A13
    +0CA00000 (new (or replacement) last sector value)
    ---------
    80B30A13 (new checksum value)

    the changed header would now look like this:

    ********new*checksum*value*****************new*las t*sector*value
    ***************|********************************** **|
    ***************V********************************** **V
    **********/*********\**************************/*********\
    00000000 13 0A B3 80 41 50 41 00 00 00 04 00 00 00 A0 0C

    now we need to fix the chain.

    go to the previously listed last sector (0B1C0000) and check it out.
    (remember that a sector is 0x200 bytes long, so to figure the offset address
    of the sector you need to multiply the sector by 0x200.)

    ********************next*partition*sector*pointer* (0*signifies*last*partition*on*disc)
    **************checksum********************|*previo us*sector*pointer********
    *****************|************************|******* ****|
    *****************V************************V******* ****V
    ************/*********\**************/*********\*/*********\
    1638000000 12 4A 92 7B 41 50 41 00 00 00 00 00 00 00 18 0B .J?{APA.......@.
    1638000010 5F 5F 65 6D 70 74 79 00 00 00 00 00 00 00 00 00 __empty.........
    1638000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    1638000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    1638000040 00 00 1C 0B 00 00 04 00 00 00 00 00 00 00 00 00 ..H.............
    ************\*********/*\*********/
    *****************^***********^
    *****************|***********|
    ***********current*sector****|
    *********************current*sector*size

    look at the above header. notice that the 'next partition sector pointer' is zero.
    a zero here signifies that it is the last sector.

    what you do here will vary from case to case depending on your hdd structure.
    let's say (for an easy example) this is your original TOC listing:

    0ac00000.: 2048MB 1337 [PP.HDL.GameDisc ]
    ...
    0b3c0000.: 2048MB part # 1 in 0ac00000

    so you see the next originally stable partition is at sector 0b3c0000.
    this means that you have 0x200000 sectors in between the current last sector
    and the real next partition in the chain. now, depending on the size of your
    hdd will determine the maximum partition size allowed. partition sizes are
    exponential in nature starting with a minimum size of 128MB. if you have a
    120gb drive, the following are the allowable sub-partition sizes:

    00040000 128mb
    00080000 256mb
    00100000 512mb
    00200000 1gb
    00400000 2gb

    going from memory, i believe the maximum partition size can only be up to
    2% of the entire drive size. so if you have a smaller drive you'll have to
    figure smaller partitions, and for a 48-bit patched hdloader and >120gb drive
    you can figure for larger partitions (this of course means that you'd need a
    200gb drive in order to use the next biggest partition (4gb)). when i say
    'partition size' i don't mean what winhiip reports, cuz it is combining all
    sub-partitions for that specific entry. if you look at your TOC list, you'll
    see a bunch of 'part #1 of xxx', etc.

    getting back to the task at hand. using the above sample, simply adjust the
    _empty partition's size to 00200000, the 'next sector' address, and the checksum.

    remember, you can always figure the checksum using the existing value like so:

    checksum = checksum - (next sector value + sector size) + (new next sector value + new sector size)

    your new header should look like this:

    *****************************next*partition*sector *pointer
    **************checksum********************|*previo us*sector*pointer********
    *****************|************************|******* ****|
    *****************V************************V******* ****V
    ************/*********\**************/*********\*/*********\
    1638000000 12 4A EA 86 41 50 41 00 00 00 3C 0B 00 00 18 0B .J?{APA.......@.
    1638000010 5F 5F 65 6D 70 74 79 00 00 00 00 00 00 00 00 00 __empty.........
    1638000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    1638000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    1638000040 00 00 1C 0B 00 00 20 00 00 00 00 00 00 00 00 00 ..H.............
    ************\*********/*\*********/
    *****************^***********^
    *****************|***********|
    ***********current*sector****|
    *********************current*sector*size

    now you have your sectors linked back together again. the only thing left
    to do is to go to your original 'good' final sector and set the 'next sector pointer'
    value to zero and adjust that partition's checksum. this will signify that it is the
    final partition.

    the above scenario is a best case scenario because all you have to do is change the
    pointers and sector size in the messed up final partition. use the aforementioned
    information as a guide to create (if you have to) multiple '_empty' partitions in
    order to re-establish a link to your good existing partitions. the only final tip
    i can give you with a multiple-partition creation scenario is to copy 0x100000 bytes
    from the original _empty partition (this is 1mb btw) and paste it into where you
    need to create your other linking partitions. then, of course, fix the headers
    accordingly.

    when you're done you should be able to do a TOC listing with hdl_dump again or do
    a check with winhiip to make sure all of your old games are fine and restored.

    if something isn't working, remember to go back and check your partition sector pointer
    values and especially the checksum values.

    i realise that this may seem like a monumental task (although it really isnt).
    consider this: even if it takes you a couple hours to get this straight, it's
    still a LOT quicker than refilling your 120gb drive with games again!

    if something is incorrect in this tutorial please feel free to comment on it.
    Last edited by thereal_zap; 10-08-2004 at 03:22 PM.
    Reply With Quote  

  10. #10  
    DoubleOKapp is offline Registered User
    Join Date
    Aug 2004
    Posts
    5
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    Thanks, I dont know how the eyes missed it either. I appreciate the info and will give it a go...
    Sidewayz to tha next life...
    Reply With Quote  

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •