Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning

Det var Är 2019 och en nÄgot ovanlig lagringsenhet, QUANTUM FIREBALL Plus KA med en kapacitet pÄ 9.1 GB, kom in i vÄrt laboratorium. Enligt innehavaren intrÀffade felet pÄ grund av ett trasigt nÀtaggregat som skadade hÄrddisken och andra komponenter i datorn Är 2004. DÀrefter började en rad försök att reparera enheten och ÄterstÀlla data, men dessa försök var utan framgÄng. NÄgonstans lovade de en billig lösning men lyckades inte lösa problemet, andra stÀllen ville ha för mycket och kunden valde att inte ÄterstÀlla data. Slutligen hade disken genomgÄtt mÄnga servicecenter. Den försvann flera gÄnger, men tack vare att Àgaren i förvÀg hade skrivit ner information frÄn olika etiketter pÄ enheten lyckades han se till att hans hÄrddisk ÄterlÀmnades frÄn vissa servicecenter. Allt detta lÀmnade spÄr, den originala kontrollerplattan hade flera lödfogar och det var ocksÄ visuellt brist pÄ SMD-komponenter (för att förhandsinformera sÄ Àr detta den minsta av problemen med denna lagringsenhet).

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 1 HDD Quantum Fireball Plus KA 9,1GB

Först var vi tvungna att leta efter en sÄ gammal nykompis med en fungerande kontrollerplatta i donorarkivet. NÀr detta Àventyr var slutfört blev det möjligt att genomföra detaljerade diagnostiska tester. Efter att ha kontrollerat motorns lindningar för kortslutning och försÀkrat oss om att det inte fanns nÄgon, installerade vi donorens platta pÄ patientens lagringsenhet. Vi ansluter ström och hör ett normalt ljud av axelrotation, genomgÄr kalibreringstestet med laddning av firmware, och efter nÄgra sekunder rapporterar lagringsenheten via register att den Àr redo att ta emot kommandon frÄn grÀnssnittet.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 2 DRD DSC-indikatorerna visar beredskap att ta emot kommandon.

Vi reserverar alla kopior av firmwaremodulerna. Vi utför integritetskontroll av firmwaremodulerna. Inga problem uppstÄr vid lÀsning av modulerna, men analys av rapporterna visar att det finns vissa konstigheter.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 3. Zontabell.

Vi uppmÀrksammar zondistributions tabellen och noterar att antalet cylindrar Àr 13845.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Figur 4 P-list (primĂ€r lista – lista över defekter som registrerats under produktionscykeln).

Vi noterar det mycket lilla antalet defekter och deras lokalisering. Vi granskar modulen för att dölja fabriksdefekter (60h) och upptÀcker att den Àr tom och saknar nÄgra poster. Baserat pÄ detta kan vi anta att det i nÄgot av de tidigare servicecentren möjligtvis har gjorts vissa manipulationer med tjÀnstomrÄdet pÄ enheten, och antingen av misstag eller avsiktligt registrerades en annan modul, eller att defektlistan i originalet rensades. För att kontrollera denna hypotes skapar vi en uppgift i Data Extractor med aktiverade alternativ "skapa sektorspecifik kopia" och "skapa virtuell översÀttare".

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Figur 5 Uppgifters instÀllningar.

NĂ€r vi har skapat uppgiften granskar vi posterna i sektortabellen i den nollsektorn (LBA 0)

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Figur 6 Huvudstartpost och sektortabell.

Vid offset 0x1BE finns en enda post (16 byte). Filsystemstypen pÄ partitionen Àr NTFS, offset till början Àr 0x3F (63) sektorer, partitionens storlek Àr 0x011309A3 (18 024 867) sektorer.
I sektorredigeraren öppnar vi LBA 63.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Figur 7 Startsektor NTFS

Enligt informationen i startsektorn NTFS för partitionen kan följande sÀgas: sektorstorleken som antagits i volymen Àr 512 byte (vid offset 0x0B Àr ordet 0x0200 (512) registrerat), antalet sektorer per kluster Àr 8 (vid offset 0x0D Àr byte 0x08 registrerat), klusterstorleken Àr 512x8=4096 byte, den första MFT-posten ligger vid offset 6 291 519 sektorer frÄn diskens början (vid offset 0x30 Àr det fyrdubbla ordet 0x00 00 00 00 00 0C 00 00 (786 432) nummer för den första klustret MFT. Sektorns nummer berÀknas med formeln: Kluster nummer * antalet sektorer per kluster + offset till partitionens början 786 432* 8+63= 6 291 519).
Vi gÄr till sektor 6 291 519.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Figur 8

Men de data som finns i denna sektor liknar överhuvudtaget inte en MFT-post. Detta indikerar visserligen en möjlig felaktig översÀttning pÄ grund av den felaktiga defektlistan, men bevisar inte detta faktum. För ytterligare kontroll kommer vi att lÀsa disken i 10 000 sektorer i bÄda riktningarna relativt sektor 6 291 519. Och dÀrefter kommer vi att göra sökningar av reguljÀra uttryck i det lÀsta.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Figur 9 Första MFT-posten

I sektor 6 291 551 hittar vi den första MFT-posten. Dess position avviker frÄn berÀknat med 32 sektorer, och dÀrefter följer en grupp av 16 poster (frÄn 0 till 15). Vi skriver i förskjutningstabellen positionen för sektor 6 291 519 för att flytta framÄt med 32 sektorer.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 10

Positionen för post nr 16 bör vara med en förskjutning av 12 551 431, men dÀr hittar vi nollor istÀllet för MFT-poster. Vi gör en liknande sökning i omgivningarna.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 11 MFT-post 0x00000011 (17)

Ett stort MFT-fragment pÄtrÀffas som börjar med posten nummer 17 med en lÀngd av 53 646 poster) med en förskjutning pÄ 17 sektorer. För positionen 12 155 431 sÀtter vi en förskjutning pÄ +17 sektorer i förskjutningstabellen.
Genom att bestÀmma MFT-fragmentens position i utrymmet kan vi dra slutsatsen att detta inte verkar vara ett slumpmÀssigt fel och att inspelningen av MFT-fragment med felaktiga förskjutningar. Versionen med en felaktig översÀttare kan anses bekrÀftad.
För att vidare lokalisera förskjutningspunkterna ska vi ange den maximalt möjliga förskjutningen. För detta syfte bestĂ€mmer vi hur mycket den slutliga markören för NTFS-partitionen (kopian av startsektorn) har flyttats. PĂ„ bild 7 med en förskjutning av 0x28 Ă€r fyrordet — detta Ă€r vĂ€rdet pĂ„ partitionsstorleken 0x00 00 00 00 01 13 09 A2 (18 024 866) sektorer. Vi lĂ€gger till förskjutningen av sjĂ€lva partitionen frĂ„n skivans början till dess lĂ€ngd för att fĂ„ den slutliga markörens NTFS-förskjutning 18 024 866 + 63= 18 024 929. FörvĂ€ntat nog fanns inte den nödvĂ€ndiga kopian av startsektorn dĂ€r. Vid sökning i omgivningarna hittades den med en ökande förskjutning pĂ„ +12 sektorer i förhĂ„llande till den senaste MFT-fragment.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 12 Kopia av NTFS-startsektorn

Den andra kopian av startsektorn vid förskjutning 18 041 006 ignorerar vi eftersom den inte har nÄgon relation till vÄr partition. Baserat pÄ tidigare ÄtgÀrder har det faststÀllts att det finns inslag av 'uppdykande' i översÀttningen av 61 sektorer inom partitionen, som har spridit ut data.
Vi utför en fullstÀndig lÀsning av lagringsenheten, vilket resulterar i 34 olÀsta sektorer. TyvÀrr kan vi inte med sÀkerhet garantera att alla dessa Àr defekter som tagits bort frÄn P-listan, men vid vidare analys Àr det önskvÀrt att ta hÀnsyn till deras position, eftersom det i vissa fall gÄr att exakt bestÀmma förskjutningspunkterna ner till sektor istÀllet för till fil.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 13 DisklÀsningsstatistik.

VÄr nÀsta uppgift blir att faststÀlla de ungefÀrliga förskjutningspunkterna (med noggrannhet ner till filen dÀr de uppstod). För detta kommer vi att skanna alla MFT-poster och bygga kedjor av filers placering (filfragment).

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 14 Kedjor av filers placering, eller deras fragment.

Vidare, genom att gÄ frÄn fil till fil, letar vi efter nÀr andra data istÀllet för den förvÀntade filrubriken visas, och den aktuella rubriken kommer att upptÀckas med en viss positiv förskjutning. Och nÀr vi preciserar förskjutningspunkterna fyller vi i tabellen. Resultatet av denna ifyllnad kommer att vara över 99 % av filerna utan skador.

Att gÄ genom plÄgor eller en lÄng historia om ett försök till datarÀddning
Fig. 15 Lista över anvÀndarfiler (publikationen av denna skÀrmbild har godkÀnts av kunden)

För att faststÀlla punktförskjutningar i enskilda filer kan ytterligare arbete utföras och med kunskap om filstrukturen kan data som inte tillhör filen hittas. Men i denna uppgift var det inte ekonomiskt fördelaktigt.

P.S. Jag skulle ocksÄ vilja be kollegor, som tidigare har haft denna disk i sina hÀnder. Var vÀnlig var försiktig nÀr ni arbetar med enhetens programvara och sÀkerhetskopiera tjÀnstedata innan ni gör nÄgra Àndringar, och undvik att avsiktligt förvÀrra problemet om ni inte har kunnat nÄ en överenskommelse med kunden om att utföra arbetet.

Tidigare publikation: Att spara pÄ tÀndstickor eller datarÀddning frÄn en skrapande HDD Seagate ST3000NC002-1DY166

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster