Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati

Era 2019. U nostru laburatoriu hà ricevutu una unità QUANTUM FIREBALL Plus KA cù una capacità di 9.1GB, chì ùn hè micca abbastanza cumuni per u nostru tempu. Sicondu u pruprietariu di l'unità, u fallimentu hè accadutu in u 2004 per via di una fonte d'energia falluta, chì hà pigliatu u discu duru è altri cumpunenti di PC cun ellu. Allora ci sò stati visiti à parechji servizii cù tentativi di riparà l'unità è restaurà dati, chì ùn anu micca successu. In certi casi anu prumessu ch'ellu serà prezzu, ma ùn anu mai risolviu u prublema, in altri era troppu caru è u cliente ùn vulia micca restituverà e dati, ma à a fine u discu passava per parechji centri di serviziu. Hè stata persa parechje volte, ma grazia à u fattu chì u pruprietariu hà pigliatu cura di arregistrà l'infurmazioni da parechji stickers nantu à u drive in anticipu, hà sappiutu per assicurà chì u so hard drive hè stata riturnata da certi centri di serviziu. I camini ùn passanu micca senza traccia, parechje tracce di saldatura sò rimasti nantu à u pianu di u controller originale, è a mancanza di elementi SMD hè stata ancu visualmente sentita (in u futuru, diceraghju chì questu hè u minimu di i prublemi di sta unità).

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 1 HDD Quantum Fireball Plus KA 9,1GB

A prima cosa chì avemu avutu à fà era di circà in l'archiviu di u donatore per un fratellu gemello cusì anticu di sta unità cù una scheda di cuntrollu di travagliu. Quandu sta ricerca hè stata cumpletata, hè diventatu pussibule di realizà misure di diagnostichi estensivi. Dopu avè verificatu l'avvolgimentu di u mutore per un cortu circuitu è ​​assicuratevi chì ùn ci hè micca un cortu circuitu, installemu u bordu da l'unità di donatore à l'unità paziente. Avemu applicà u putere è sente u sonu nurmale di l'arbulu spinning up, passendu una prova di calibrazione cù a carica di u firmware, è dopu à uni pochi di sicondi, l'accionamentu informa da i registri chì hè prontu à risponde à i cumandamenti da l'interfaccia.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 2 L'indicatori DRD DSC indicanu prontu à riceve cumandamenti.

Facemu una copia di salvezza di tutte e copie di i moduli di firmware. Avemu verificatu l'integrità di i moduli di firmware. Ùn ci sò micca prublemi cù i moduli di lettura, ma l'analisi di i rapporti mostra chì ci sò qualchi stranezze.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 3. Tavola di zona.

Fighjemu attente à a tavula di distribuzione zonale è nutate chì u numeru di cilindri hè 13845.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 4 P-list (lista primaria - lista di difetti introduttu durante u ciculu di produzzione).

Avemu attiratu l'attenzione à u numeru troppu chjucu di difetti è a so locu. Fighjemu u difettu di fabbrica chì nasconde u modulu di log (60h) è truvamu chì hè viotu è ùn cuntene una sola entrata. Basatu nantu à questu, pudemu assume chì in unu di i centri di serviziu previ, alcune manipulazioni pò esse fattu cù l'area di serviziu di l'unità, è accidentalmente o intenzionalmente un modulu straneru hè statu scrittu, o a lista di difetti in l'uriginale. unu hè statu sbulicatu. Per pruvà sta ipotesi, creemu un compitu in Data Extractor cù l'opzioni "creà una copia settore per settore" è "create traduttore virtuale" attivate.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 5 paràmetri di u travagliu.

Dopu avè creatu u compitu, fighjemu l'entrate in a tavola di partizioni in u settore zero (LBA 0)

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 6 Master boot record è partition table.

À l'offset 0x1BE ci hè una sola entrata (16 bytes). U tipu di sistema di fugliale nantu à a partizione hè NTFS, offset à l'iniziu di settori 0x3F (63), dimensioni di partizioni 0x011309A3 (18) settori.
In l'editore di settore, apre LBA 63.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 7 settore di boot NTFS

Sicondu l'infurmazioni in u settore di boot di a partizione NTFS, pudemu dì chì: a dimensione di u settore accettata in u voluminu hè 512 bytes (a parolla 0x0 (0) hè scritta in offset 0200x512B), u numeru di settori in u cluster hè 8 (byte 0x0 hè scrittu à offset 0x08D), a dimensione di u cluster hè 512x8 = 4096 bytes, u primu record MFT hè situatu à un offset di 6 settori da u principiu di u discu (à un offset di 291x519 quadruple word 0x30 0 00 00). 00 00C 00 0 (00 00) numeru di u primu cluster MFT. U numeru di settore hè calculatu da a formula: Numeru cluster * numeru di settori in u cluster + offset à u principiu di a sezione 786 * 432 + 786 = 432).
Passemu à u settore 6.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Fig. 8

Ma i dati cuntenuti in stu settore hè cumplettamente sfarente da u record MFT. Ancu s'ellu indica una pussibuli traduzzione incorrecta per una lista di difetti sbagliati, ùn prova micca stu fattu. Per verificà più, leghjeremu u discu da 10 000 settori in e duie direzzione relative à 6 291 519 settori. È dopu avemu da circà l'espressioni rigulari in ciò chì leghje.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 9 Prima registrazione MFT

In u settore 6 truvamu u primu record MFT. A so pusizioni difiere da quella calculata da 291 settori, è dopu un gruppu di 551 records (da 32 à 16) seguitanu continuamente. Entremu in a pusizione di u settore 0 in a tavola di turnu è avanzemu da 15 settori.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Fig. 10

A pusizioni di u record N ° 16 deve esse à l'offset 12, ma truvamu ceros quì invece di u record MFT. Facemu una ricerca simile in u circondu.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 11 entrata MFT 0x00000011 (17)

Un grande fragmentu di MFT hè rilevatu, cuminciendu cù u numeru record 17 cù una durata di 53 records) cù un cambiamentu di 646 settori. Per a pusizione 17, mette un shift di + 12 settori in a tabella di shift.
Dopu avè determinatu a pusizione di frammenti MFT in u spaziu, pudemu cuncludi chì questu ùn pare micca un fallimentu aleatoriu è a registrazione di frammenti MFT à offsets incorrecte. Una versione cù un traduttore incorrectu pò esse cunsideratu cunfirmata.
Per localizà ulteriormente i punti di shift, stabiliremu u massimu spostamentu pussibule. Per fà questu, determinemu quantu u marcatore finale di a partizione NTFS (copia di u settore di boot) hè spustatu. In a Figura 7, à l'offset 0x28, a quadword hè u valore di a dimensione di partizione di i settori 0x00 00 00 00 01 13 09 A2 (18). Aghjunghjemu l'offset di a particione stessu da u principiu di u discu à a so durata, è avemu l'offset di u marcatu NTFS finale 024 866 18 + 024 = 866 63 18. Cum'è s'aspittava, a copia necessaria di u settore di boot ùn era micca quì. Quandu cercate l'area circundante, hè stata truvata cun un cambiamentu crescente di settori + 024 relative à l'ultimu fragmentu MFT.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 12 Copia di u settore di boot NTFS

Ignoramu l'altra copia di u settore di boot à l'offset 18, postu chì ùn hè micca ligata à a nostra partizione. Basatu annantu à l'attività precedente, hè statu stabilitu chì in a seccione ci sò inclusi i settori 041 chì "apparsu" in a trasmissione, chì hà allargatu i dati.
Facemu una lettura completa di l'unità, chì lascia 34 settori senza leghje. Sfurtunatamente, hè impussibile di guarantiscenu in modu affidabile chì tutti sò difetti eliminati da a lista P, ma in più analisi hè cunsigliatu di piglià in contu a so pusizioni, postu chì in certi casi serà pussibule determinà in modu affidabile i punti di shift cù una precisione di u settore, è micca u schedariu.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 13 Statistiche di lettura di discu.

U nostru prossimu compitu serà di stabilisce i lochi apprussimativi di i turni (à a precisione di u schedariu in quale sò accaduti). Per fà questu, scanneremu tutti i registri MFT è custruiscenu catene di lochi di schedari (frammenti di file).

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 14 Catene di locu di i schedari o di i so frammenti.

In seguitu, passendu da u schedariu à u schedariu, circhemu u mumentu in quale ci saranu altre dati invece di l'intestazione di u schedariu previstu, è l'intestazione desiderata si trova cù un certu cambiamentu pusitivu. È mentre raffinemu i punti di shift, riempiemu a tavula. U risultatu di riempimentu serà più di 99% di i schedari senza danni.

Camminendu per l'agonia o a longa storia di un tentativu di ricuperazione di dati
Risu. 15 Lista di i fugliali d'utilizatori (u accunsentu hè statu ricevutu da u cliente per publicà sta screenshot)

Per stabilisce u puntu di turnu in i schedarii individuali, pudete fà un travagliu supplementu è, se sapete a struttura di u schedariu, truvate l'inclusioni di dati chì ùn sò micca ligati à questu. Ma in questu compitu ùn era micca economicamente fattibile.

PS Mi piacerebbe ancu indirizzà i mo culleghi, in e mani di quale sta discu era prima. Per piacè esse attentu quandu u travagliu cù u firmware di u dispositivu è a copia di salvezza di i dati di serviziu prima di cambià qualcosa, è ùn aggravate micca deliberatamente u prublema s'ellu ùn era micca capaci d'accordu cù u cliente nantu à u travagliu.

Publicazione precedente: Salvà in partite o ricuperazione di dati da un HDD di macinazione Seagate ST3000NC002-1DY166

Source: www.habr.com

Add a comment