Одење низ агонија или долга историја на еден обид за обновување податоци

Беше 2019 година. Нашата лабораторија доби погон QUANTUM FIREBALL Plus KA со капацитет од 9.1 GB, што не е баш вообичаено за наше време. Според сопственикот на дискот, дефектот се случил во далечната 2004 година поради неуспешно напојување, кое со себе ги однело хард дискот и другите компоненти на компјутерот. Потоа имаше посети на различни сервиси со обиди за поправка на уредот и враќање на податоците, кои беа неуспешни. Во некои случаи ветуваа дека ќе биде евтино, но никогаш не го решија проблемот, во други беше прескапо и клиентот не сакаше да ги врати податоците, но на крајот дискот помина низ многу сервисни центри. Се губеше неколку пати, но благодарение на тоа што сопственикот однапред се грижеше за снимање информации од разни налепници на дискот, успеа да се погрижи неговиот хард диск да биде вратен од некои сервисни центри. Прошетките не поминаа без трага, на оригиналната контролна плоча останаа повеќекратни траги од лемење, а визуелно се почувствува недостатокот на SMD елементи (гледајќи напред, ќе кажам дека ова е најмалиот проблем на овој погон).

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 1 HDD Quantum Fireball Plus KA 9,1 GB

Првото нешто што требаше да го направиме беше да бараме во архивата на донаторите за таков древен брат близнак од овој диск со работна контролна табла. Кога оваа потрага беше завршена, стана можно да се спроведат обемни дијагностички мерки. Откако ќе ги провериме намотките на моторот за краток спој и ќе се увериме дека нема краток спој, ја инсталираме плочата од погонот на донаторот до погонот на пациентот. Напојуваме и го слушаме нормалниот звук на вртењето на вратилото, поминувајќи тест за калибрација со вчитување на фирмверот и по неколку секунди погонот известува по регистри дека е подготвен да одговори на командите од интерфејсот.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 2 DRD DSC индикатори укажуваат на подготвеност за примање наредби.

Ние правиме резервна копија на сите копии од модулите на фирмверот. Го проверуваме интегритетот на модулите на фирмверот. Нема проблеми со читањето на модулите, но анализата на извештаите покажува дека има некои необичности.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 3. Зонска табела.

Обрнуваме внимание на зоната на табелата за дистрибуција и забележуваме дека бројот на цилиндри е 13845.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 4 П-листа (примарна листа – листа на дефекти воведени во текот на производниот циклус).

Обрнуваме внимание на премалиот број на дефекти и нивната локација. Го гледаме модулот за криење на дневник на фабрички дефект (60h) и откриваме дека е празен и не содржи ниту еден запис. Врз основа на ова, можеме да претпоставиме дека во еден од претходните сервисни центри, можеби се направени некои манипулации со сервисната област на погонот, и случајно или намерно е напишан странски модул или списокот на дефекти во оригиналот. еден беше расчистен. За да ја тестираме оваа претпоставка, создаваме задача во Data Extractor со овозможени опции „креирај сектор по сектор“ и „креирај виртуелен преведувач“.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 5 Параметри на задачата.

Откако ја создадовме задачата, ги гледаме записите во табелата со партиции во секторот нула (LBA 0)

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 6 Главна табела за подигање и партиција.

На поместување 0x1BE има еден запис (16 бајти). Типот на датотечен систем на партицијата е NTFS, поместен на почетокот на секторите 0x3F (63), сектори со големина на партиција 0x011309A3 (18).
Во секторскиот уредник, отворете LBA 63.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 7 NTFS подигање сектор

Според информациите во секторот за подигање на партицијата NTFS, можеме да го кажеме следново: големината на секторот прифатена во волуменот е 512 бајти (зборот 0x0 (0) е напишан со поместување 0200x512B), бројот на сектори во кластерот е 8 (бајт 0x0 е запишан со поместување 0x08D), големината на кластерот е 512x8=4096 бајти, првиот MFT запис се наоѓа на поместување од 6 сектори од почетокот на дискот (при поместување од 291x519 четирикратен збор 0x30 0 00C 00 00 (00) број на првиот MFT кластер. Бројот на секторот се пресметува со формулата: Број на кластер * број на сектори во кластерот + поместување до почетокот на делот 00* 0+00= 00).
Да преминеме на секторот 6.

Одење низ агонија или долга историја на еден обид за обновување податоци
Сл. 8

Но, податоците содржани во овој сектор се сосема различни од рекордот на MFT. Иако ова укажува на можен неточен превод поради погрешна листа на дефекти, тоа не го докажува овој факт. За понатамошна проверка, ќе го прочитаме дискот по 10 сектори во двете насоки во однос на 000 сектори. И тогаш ќе бараме регуларни изрази во она што го читаме.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 9 Прво MFT снимање

Во секторот 6 го наоѓаме првиот рекорд на MFT. Неговата позиција се разликува од пресметаниот за 291 сектори, а потоа континуирано следи група од 551 записи (од 32 до 16). Ајде да ја внесеме позицијата на секторот 0 во табелата за смена и да одиме напред за 15 сектори.

Одење низ агонија или долга историја на еден обид за обновување податоци
Сл. 10

Позицијата на рекордот бр. 16 треба да биде на офсет 12, но таму наоѓаме нули наместо рекордот MFT. Ајде да спроведеме слична потрага во околината.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 11 MFT влез 0x00000011 (17)

Откриен е голем фрагмент од MFT, почнувајќи од рекордот број 17 со должина од 53 записи) со поместување од 646 сектори. За позиција 17, ставете поместување од +12 сектори во табелата за смена.
Откако ја утврдивме позицијата на фрагментите на MFT во вселената, можеме да заклучиме дека ова не изгледа како случаен дефект и снимање на фрагменти од MFT со погрешни поместувања. Верзијата со неточен преведувач може да се смета за потврдена.
За дополнително локализирање на точките за поместување, ќе поставиме максимално можно поместување. За да го направите ова, одредуваме колку е поместен крајниот маркер на партицијата NTFS (копија од секторот за подигање). На слика 7, при поместување 0x28, четиризборот е вредноста на големината на партицијата од 0x00 00 00 00 01 13 09 A2 (18) сектори. Да го додадеме поместувањето на самата партиција од почетокот на дискот до неговата должина и ќе го добиеме поместувањето на крајниот NTFS маркер 024 + 866= 18. Како што се очекуваше, потребната копија од секторот за подигање ја немаше. При пребарување на околината, беше откриено со зголемено поместување од +024 сектори во однос на последниот фрагмент MFT.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 12 Копија од секторот за подигање NTFS

Ја игнорираме другата копија од секторот за подигање со офсет 18, бидејќи не е поврзана со нашата партиција. Врз основа на претходните активности, утврдено е дека во делот има вклученост на 041 сектор што „изникнале“ во емитувањето, со што се прошириле податоците.
Вршиме целосно читање на уредот, што остава 34 непрочитани сектори. За жал, невозможно е веродостојно да се гарантира дека сите тие се дефекти отстранети од П-листата, но во понатамошната анализа се препорачува да се земе предвид нивната позиција, бидејќи во некои случаи ќе биде можно со сигурност да се одредат точките на смена со точност на секторот, а не на датотеката.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 13 Статистика за читање диск.

Нашата следна задача ќе биде да ги утврдиме приближните локации на смените (до точноста на датотеката во која се случиле). За да го направите ова, ќе ги скенираме сите MFT записи и ќе изградиме синџири на локации на датотеки (фрагменти од датотеки).

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 14 Синџири на локација на датотеки или нивни фрагменти.

Следно, движејќи се од датотека во датотека, го бараме моментот во кој ќе има други податоци наместо очекуваното заглавие на датотеката, а саканиот заглавие ќе се најде со одредено позитивно поместување. И додека ги усовршуваме точките за смена, ја пополнуваме табелата. Резултатот од неговото пополнување ќе биде над 99% од датотеките без оштетување.

Одење низ агонија или долга историја на еден обид за обновување податоци
Ориз. 15 Список на кориснички датотеки (добиена е согласност од клиентот да се објави оваа слика од екранот)

За да воспоставите поместувања на точките во поединечни датотеки, можете да извршите дополнителна работа и, ако ја знаете структурата на датотеката, да најдете инклузии на податоци што не се поврзани со неа. Но, во оваа задача тоа не беше економски изводливо.

П.С. Би сакал да им се обратам и на моите колеги, во чии раце претходно беше овој диск. Ве молиме, бидете внимателни кога работите со фирмверот на уредот и направете резервна копија од податоците за услугата пред да промените нешто и немојте намерно да го влошувате проблемот ако не сте можеле да се договорите со клиентот за работата.

Претходна публикација: Заштеда на натпревари или враќање на податоци од мелење HDD Seagate ST3000NC002-1DY166

Извор: www.habr.com

Додадете коментар