Tas bija 2019. gads. MÅ«su laboratorija saÅÄma QUANTUM FIREBALL Plus KA disku ar 9.1GB ietilpÄ«bu, kas mÅ«su laikam nav gluži ierasts. KÄ stÄsta diska Ä«paÅ”nieks, kļūme notikusi tÄlajÄ 2004. gadÄ bojÄta baroÅ”anas avota dÄļ, kas lÄ«dzi paÅÄmis cieto disku un citas datora sastÄvdaļas. PÄc tam bija dažÄdu servisu apmeklÄjumi ar mÄÄ£inÄjumiem salabot disku un atjaunot datus, kas bija nesekmÄ«gi. Dažos gadÄ«jumos viÅi solÄ«ja, ka tas bÅ«s lÄti, taÄu viÅi nekad neatrisinÄja problÄmu, citos tas bija pÄrÄk dÄrgi un klients nevÄlÄjÄs atjaunot datus, bet beigÄs disks izgÄja cauri daudziem servisa centriem. Tas tika pazaudÄts vairÄkas reizes, taÄu, pateicoties tam, ka Ä«paÅ”nieks jau iepriekÅ” parÅ«pÄjÄs par informÄcijas ierakstÄ«Å”anu no dažÄdÄm uzlÄ«mÄm uz diska, viÅam izdevÄs nodroÅ”inÄt cietÄ diska atgrieÅ”anu no dažiem servisa centriem. GÄjieni nepagÄja bez pÄdÄm, uz oriÄ£inÄlÄs kontrollera plates palika vairÄkas lodÄÅ”anas pÄdas, arÄ« vizuÄli bija jÅ«tams SMD elementu trÅ«kums (skatoties uz priekÅ”u, teikÅ”u, ka Ŕī ir mazÄkÄ no Ŕī diska problÄmÄm).
RÄ«si. 1 cietais disks Quantum Fireball Plus KA 9,1 GB
PirmÄ lieta, kas mums bija jÄdara, bija meklÄt donoru arhÄ«vÄ tik senu Ŕī diska dvÄ«Åu brÄli ar strÄdÄjoÅ”u kontroliera plati. Kad Å”is uzdevums tika pabeigts, kļuva iespÄjams veikt plaÅ”us diagnostikas pasÄkumus. PÄrbaudot motora tinumu Ä«ssavienojumu un pÄrliecinoties, ka nav Ä«ssavienojuma, mÄs uzstÄdÄm plati no donora piedziÅas uz pacienta piedziÅu. MÄs pieslÄdzam strÄvu un dzirdam parasto vÄrpstas grieÅ”anÄs skaÅu, izejot kalibrÄÅ”anas testu ar programmaparatÅ«ras ielÄdi, un pÄc dažÄm sekundÄm diskdzinis reÄ£istros ziÅo, ka ir gatavs reaÄ£Ät uz interfeisa komandÄm.
RÄ«si. 2 DRD DSC indikatori norÄda gatavÄ«bu saÅemt komandas.
MÄs dublÄjam visas programmaparatÅ«ras moduļu kopijas. MÄs pÄrbaudÄm programmaparatÅ«ras moduļu integritÄti. Ar moduļu lasÄ«Å”anu problÄmu nav, taÄu pÄrskatu analÄ«ze liecina, ka ir dažas dÄ«vainÄ«bas.
RÄ«si. 3. Zonu tabula.
MÄs pievÄrÅ”am uzmanÄ«bu zonas sadalÄ«juma tabulai un Åemam vÄrÄ, ka cilindru skaits ir 13845.
RÄ«si. 4 P-saraksts (primÄrais saraksts ā ražoÅ”anas cikla laikÄ ieviesto defektu saraksts).
VÄrÅ”am uzmanÄ«bu uz pÄrÄk mazo defektu skaitu un to atraÅ”anÄs vietu. ApskatÄm rÅ«pnÄ«cas defektu slÄpÅ”anas žurnÄla moduli (60h) un konstatÄjam, ka tas ir tukÅ”s un nesatur nevienu ierakstu. Pamatojoties uz to, mÄs varam pieÅemt, ka vienÄ no iepriekÅ”Äjiem servisa centriem, iespÄjams, tika veiktas dažas manipulÄcijas ar diska apkalpoÅ”anas zonu un nejauÅ”i vai tÄ«Å”i tika uzrakstÄ«ts sveÅ”s modulis vai oriÄ£inÄlÄ esoÅ”o defektu saraksts. viens tika notÄ«rÄ«ts. Lai pÄrbaudÄ«tu Å”o pieÅÄmumu, mÄs izveidojam uzdevumu programmÄ Data Extractor ar iespÄjotÄm opcijÄm āizveidot kopiju pa sektoramā un āizveidot virtuÄlo tulkotÄjuā.
RÄ«si. 5 Uzdevuma parametri.
PÄc uzdevuma izveidoÅ”anas mÄs skatÄmies nodalÄ«juma tabulas ierakstus sektorÄ nulles (LBA 0)
RÄ«si. 6 Galvenais sÄknÄÅ”anas ieraksts un nodalÄ«jumu tabula.
Pie nobÄ«des 0x1BE ir viens ieraksts (16 baiti). Failu sistÄmas tips nodalÄ«jumÄ ir NTFS, nobÄ«de uz 0x3F (63) sektoru sÄkumu, nodalÄ«juma lielums 0x011309A3 (18 024 867) sektoros.
Sektora redaktorÄ atveriet LBA 63.
RÄ«si. 7 NTFS sÄknÄÅ”anas sektors
SaskaÅÄ ar informÄciju NTFS nodalÄ«juma sÄknÄÅ”anas sektorÄ mÄs varam teikt sekojoÅ”o: sÄjumÄ pieÅemtais sektora lielums ir 512 baiti (vÄrds 0x0 (0) ir rakstÄ«ts pie nobÄ«des 0200x512B), sektoru skaits klasterÄ« ir 8 (baits 0x0 tiek rakstÄ«ts pie nobÄ«des 0x08D), klastera izmÄrs ir 512x8=4096 baiti, pirmais MFT ieraksts atrodas 6 291 519 sektoru nobÄ«dÄ no diska sÄkuma (ar nobÄ«di 0x30 ÄetrkÄrÅ”s vÄrds 0x00 00 00 00C 00 0 (00 00) pirmÄ MFT klastera numurs Sektora numuru aprÄÄ·ina pÄc formulas: Klastera numurs * sektoru skaits klasterÄ« + nobÄ«de lÄ«dz sadaļas sÄkumam 786 432* 786+432= 8 63 6).
PÄrejam uz 6 291 519 sektoru.
Att. 8
Bet Å”ajÄ sektorÄ ietvertie dati pilnÄ«gi atŔķiras no MFT ieraksta. Lai gan tas norÄda uz iespÄjamu nepareizu tulkojumu nepareiza defektu saraksta dÄļ, tas Å”o faktu nepierÄda. Lai veiktu papildu pÄrbaudi, mÄs nolasÄ«sim disku par 10 000 sektoriem abos virzienos, salÄ«dzinot ar 6 291 519 sektoriem. Un tad mÄs lasÄmajÄ meklÄsim regulÄras izteiksmes.
RÄ«si. 9 Pirmais MFT ieraksts
6 291 551 sektorÄ atrodam pirmo MFT ierakstu. TÄ pozÄ«cija no aprÄÄ·inÄtÄ atŔķiras par 32 sektoriem, un tad nepÄrtraukti seko 16 ierakstu grupa (no 0 lÄ«dz 15). IevadÄ«sim maiÅu tabulÄ sektora 6 291 519 pozÄ«ciju un virzÄ«simies uz priekÅ”u par 32 sektoriem.
Att. 10
Ieraksta Nr.16 pozÄ«cijai jÄbÅ«t nobÄ«dei 12 551 431, bet MFT ieraksta vietÄ mÄs atrodam nulles. Veiksim lÄ«dzÄ«gu meklÄÅ”anu tuvÄkajÄ apkÄrtnÄ.
RÄ«si. 11 MFT ieraksts 0x00000011 (17)
Tiek atklÄts liels MFT fragments, sÄkot ar ieraksta numuru 17 ar 53 646 ierakstu garumu) ar 17 sektoru nobÄ«di. PozÄ«cijÄ 12 155 431 ievietojiet maiÅu tabulÄ +17 sektoru maiÅu.
Noskaidrojot MFT fragmentu atraÅ”anÄs vietu telpÄ, varam secinÄt, ka tas neizskatÄs pÄc nejauÅ”as atteices un MFT fragmentu ierakstÄ«Å”anas pie nepareizÄm nobÄ«dÄm. Versiju ar nepareizu tulkotÄju var uzskatÄ«t par apstiprinÄtu.
Lai tÄlÄk lokalizÄtu pÄrslÄgÅ”anas punktus, mÄs iestatÄ«sim maksimÄlo iespÄjamo pÄrvietojumu. Lai to izdarÄ«tu, mÄs nosakÄm, cik daudz tiek pÄrvietots NTFS nodalÄ«juma beigu marÄ·ieris (sÄknÄÅ”anas sektora kopija). 7. attÄlÄ pie nobÄ«des 0x28 ÄetrvÄrds ir nodalÄ«juma lieluma vÄrtÄ«ba 0x00 00 00 00 01 13 09 A2 (18 024 866) sektoros. Pievienosim paÅ”a nodalÄ«juma nobÄ«di no diska sÄkuma lÄ«dz tÄ garumam un iegÅ«stam beigu NTFS marÄ·iera nobÄ«di 18 024 866 + 63= 18 024 929. KÄ jau bija gaidÄms, vajadzÄ«gÄ sÄknÄÅ”anas sektora kopija tur nebija. PÄrmeklÄjot apkÄrtni, tas tika atrasts ar pieaugoÅ”u +12 sektoru nobÄ«di attiecÄ«bÄ pret pÄdÄjo MFT fragmentu.
RÄ«si. 12 NTFS sÄknÄÅ”anas sektora kopija
MÄs ignorÄjam otru sÄknÄÅ”anas sektora kopiju ar nobÄ«di 18 041 006, jo tÄ nav saistÄ«ta ar mÅ«su nodalÄ«jumu. Pamatojoties uz iepriekÅ”ÄjÄm aktivitÄtÄm, tika konstatÄts, ka sadaļas ietvaros ir iekļauti 61 raidÄ«jumÄ āuzniruÅ”ieā sektori, kas paplaÅ”inÄja datus.
MÄs veicam pilnu diska nolasÄ«Å”anu, kas atstÄj 34 nelasÄ«tus sektorus. DiemžÄl nav iespÄjams droÅ”i garantÄt, ka tie visi ir defekti, kas izÅemti no P-saraksta, taÄu turpmÄkajÄ analÄ«zÄ ir ieteicams Åemt vÄrÄ to atraÅ”anÄs vietu, jo dažos gadÄ«jumos bÅ«s iespÄjams ticami noteikt maiÅas punktus ar sektora, nevis faila precizitÄte.
Rīsi. 13 Diska nolasīŔanas statistika.
MÅ«su nÄkamais uzdevums bÅ«s noteikt aptuvenÄs maiÅu atraÅ”anÄs vietas (lÄ«dz tÄs faila precizitÄtei, kurÄ tÄs notika). Lai to izdarÄ«tu, mÄs skenÄsim visus MFT ierakstus un izveidosim failu atraÅ”anÄs vietu Ä·Ädes (failu fragmentus).
RÄ«si. 14 Failu vai to fragmentu atraÅ”anÄs vietas Ä·Ädes.
TÄlÄk, pÄrejot no faila uz failu, mÄs meklÄjam brÄ«di, kurÄ gaidÄ«tÄs faila galvenes vietÄ bÅ«s citi dati, un vÄlamÄ galvene tiks atrasta ar noteiktu pozitÄ«vu nobÄ«di. Un, precizÄjot maiÅas punktus, mÄs aizpildÄm tabulu. TÄ aizpildÄ«Å”anas rezultÄts bÅ«s vairÄk nekÄ 99% failu bez bojÄjumiem.
RÄ«si. 15 LietotÄju failu saraksts (tika saÅemta klienta piekriÅ”ana publicÄt Å”o ekrÄnuzÅÄmumu)
Lai noteiktu punktu nobÄ«des atseviŔķos failos, varat veikt papildu darbu un, ja zinÄt faila struktÅ«ru, atrast ar to nesaistÄ«tu datu iekļauÅ”anu. Bet Å”ajÄ uzdevumÄ tas nebija ekonomiski izdevÄ«gi.
PS VÄlos uzrunÄt arÄ« savus kolÄÄ£us, kuru rokÄs Å”is disks bija iepriekÅ”. LÅ«dzu, esiet piesardzÄ«gs, strÄdÄjot ar ierÄ«ces programmaparatÅ«ru un dublÄjiet pakalpojuma datus, pirms kaut ko mainÄt, un apzinÄti nepasliktiniet problÄmu, ja nevarat vienoties ar klientu par darbu.
Avots: www.habr.com