Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру

2019 жыл болды. Біздің зертханаға сыйымдылығы 9.1 ГБ болатын QUANTUM FIREBALL Plus KA дискісі алынды, бұл біздің заманымыз үшін кең таралған емес. Дискі иесінің айтуынша, ақау 2004 жылы қатты диск пен басқа да ДК құрамдастарын өзімен бірге алып кеткен қуат көзінің істен шығуына байланысты болған. Содан кейін дискіні жөндеу және деректерді қалпына келтіру әрекеттерімен әртүрлі қызметтерге бару болды, олар сәтсіз болды. Кейбір жағдайларда олар арзан болады деп уәде берді, бірақ олар ешқашан мәселені шешпеді, басқаларында бұл өте қымбат болды және клиент деректерді қалпына келтіргісі келмеді, бірақ соңында диск көптеген қызмет көрсету орталықтарынан өтті. Ол бірнеше рет жоғалып кетті, бірақ иесі алдын ала дискідегі әртүрлі стикерлерден ақпаратты жазуға қамқорлық жасағанының арқасында ол өзінің қатты дискісін кейбір қызмет көрсету орталықтарынан қайтаруды қамтамасыз етті. Серуендер ізсіз өтпеді, бастапқы контроллер тақтасында дәнекерлеудің көптеген іздері қалды, сонымен қатар SMD элементтерінің жетіспеушілігі көзбен сезілді (алға қарап, мен бұл дискінің ең аз проблемалары деп айтамын).

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 1 HDD Quantum Fireball Plus KA 9,1 ГБ

Бізге ең алдымен донорлық мұрағаттан жұмыс істейтін контроллер тақтасы бар осы дискінің ежелгі егіз ағасын іздеу керек болды. Бұл квест аяқталғаннан кейін ауқымды диагностикалық шараларды жүргізуге мүмкіндік туды. Қозғалтқыш орамаларында қысқа тұйықталу бар-жоғын тексергеннен кейін және қысқа тұйықталу жоқтығына көз жеткізгеннен кейін біз платаны донорлық жетектен пациент жетекіне орнатамыз. Біз қуат береміз және біліктің айналуының қалыпты дыбысын естиміз, микробағдарламаны жүктеу арқылы калибрлеу сынағынан өтеміз және бірнеше секундтан кейін жетек интерфейстен командаларға жауап беруге дайын екендігі туралы регистрлер арқылы хабарлайды.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 2 DRD DSC индикаторлары пәрмендерді қабылдауға дайындығын көрсетеді.

Микробағдарлама модульдерінің барлық көшірмелерінің сақтық көшірмесін жасаймыз. Микробағдарлама модульдерінің тұтастығын тексереміз. Модульдерді оқуда қиындықтар жоқ, бірақ есептерді талдау кейбір оғаштықтардың бар екенін көрсетеді.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 3. Аймақ кестесі.

Біз аймақтық бөлу кестесіне назар аударамыз және цилиндрлер саны 13845 екенін атап өтеміз.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 4 P-тізімі (бастапқы тізім – өндірістік цикл барысында енгізілген ақаулар тізімі).

Біз ақаулардың тым аз санына және олардың орналасуына назар аударамыз. Біз зауыт ақауларын жасыратын журнал модулін (60сағ) қарап, оның бос екенін және бір жазба жоқ екенін анықтаймыз. Осыған сүйене отырып, біз алдыңғы қызмет көрсету орталықтарының бірінде дискінің қызмет көрсету аймағымен кейбір манипуляциялар жасалуы мүмкін деп болжауға болады және кездейсоқ немесе әдейі шетелдік модуль жазылған немесе түпнұсқадағы ақаулар тізімі. біреуі тазартылды. Бұл болжамды тексеру үшін Data Extractor бағдарламасында «сектор бойынша көшірме жасау» және «виртуалды аудармашы жасау» опциялары қосылған тапсырма жасаймыз.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 5 Тапсырма параметрлері.

Тапсырманы жасағаннан кейін біз нөл секторындағы бөлімдер кестесіндегі жазбаларды қарастырамыз (LBA 0)

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 6 Негізгі жүктеу жазбасы және бөлімдер кестесі.

0x1BE офсетінде бір жазба бар (16 байт). Бөлімдегі файлдық жүйе түрі NTFS, 0x3F (63) секторлардың басына ығыстырылған, бөлім өлшемі 0x011309A3 (18 024 867) секторлар.
Сектор редакторында LBA 63 ашыңыз.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 7 NTFS жүктеу секторы

NTFS бөлімінің жүктеу секторындағы ақпаратқа сәйкес, біз мынаны айта аламыз: көлемде қабылданған сектор өлшемі 512 байт (0x0 (0) сөзі 0200x512B офсетінде жазылған), кластердегі секторлар саны 8 (0x0 байт 0x08D ығысуында жазылған), кластер өлшемі 512x8=4096 байт, бірінші MFT жазбасы дискінің басынан 6 291 519 сектордың ығысуында орналасқан (0x30 төрттік сөздің ығысуында 0x00 00) 00 00C 00 0 (00 00) бірінші MFT кластерінің нөмірі Сектор нөмірі мына формула бойынша есептеледі: Кластер нөмірі * кластердегі секторлар саны + бөлімнің басына ығысу 786 432* 786+432= 8 63 6).
6 291 519 секторға көшейік.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Сурет. 8

Бірақ бұл сектордағы деректер MFT жазбасынан мүлдем басқаша. Бұл қате ақаулар тізіміне байланысты ықтимал қате аударманы көрсетсе де, бұл фактіні дәлелдемейді. Қосымша тексеру үшін дискіні 10 000 6 секторға қатысты екі бағытта да 291 519 сектор бойынша оқимыз. Содан кейін біз оқығандарымыздан тұрақты тіркестерді іздейміз.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 9 Бірінші MFT жазбасы

6 291 551 секторда біз бірінші MFT жазбасын табамыз. Оның орны есептелгеннен 32 сектормен ерекшеленеді, содан кейін 16 жазбадан тұратын топ (0-ден 15-ке дейін) үздіксіз жүреді. Ауысым кестесіне 6 291 519 сектор позициясын енгізіп, 32 секторға алға жылжайық.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Сурет. 10

№ 16 жазбаның орны 12 551 431 ығысуында болуы керек, бірақ біз MFT жазбасының орнына нөлдерді табамыз. Осыған ұқсас іздеуді төңіректе де жүргізейік.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 11 MFT жазбасы 0x00000011 (17)

Ұзындығы 17 жазбадан тұратын 53 рекордтық нөмірден бастап, 646 сектордың ауысуы бар MFT үлкен фрагменті анықталды. 17 12 155 позиция үшін ауысым кестесіне +431 сектордың ауысымын қойыңыз.
Кеңістіктегі MFT фрагменттерінің орнын анықтай отырып, біз бұл кездейсоқ сәтсіздікке және MFT фрагменттерін қате ығысу кезінде жазуға ұқсамайды деп қорытынды жасауға болады. Қате аудармашы бар нұсқаны расталған деп санауға болады.
Ауысу нүктелерін одан әрі локализациялау үшін біз максималды мүмкін орын ауыстыруды орнатамыз. Ол үшін NTFS бөлімінің соңғы маркерінің (жүктеу секторының көшірмесі) қаншалықты жылжығанын анықтаймыз. 7-суретте 0x28 ығысуында төртсөз 0x00 00 00 00 01 13 09 A2 (18 024 866) секторлардың бөлім өлшемі мәні болып табылады. Дискінің басынан оның ұзындығына бөлімнің офсетін қосамыз және NTFS соңғы маркерінің ығысуын аламыз 18 024 866 + 63= 18 024 929. Күтілгендей, жүктеу секторының қажетті көшірмесі ол жерде болмады. Айналадағы аумақты іздестіру кезінде соңғы MFT фрагментіне қатысты +12 сектордың ұлғаюы анықталды.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 12 NTFS жүктеу секторының көшірмесі

18 041 006 офсеттегі жүктеу секторының басқа көшірмесін елемейміз, өйткені ол біздің бөлімге қатысты емес. Алдыңғы іс-шараларға сүйене отырып, бөлімде деректерді кеңейтетін хабар таратуда «пайда болған» 61 сектордың қосындылары бар екені анықталды.
Біз дискіні толық оқуды орындаймыз, ол 34 оқылмаған секторды қалдырады. Өкінішке орай, олардың барлығы Р-тізімінен жойылған ақаулар екеніне сенімді кепілдік беру мүмкін емес, бірақ одан әрі талдау кезінде олардың позициясын ескерген жөн, өйткені кейбір жағдайларда ауысу нүктелерін сенімді түрде анықтауға болады. файлдың емес, сектордың дәлдігі.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 13 Дискіні оқу статистикасы.

Біздің келесі міндетіміз ауысулардың шамамен орналасқан жерлерін анықтау болады (олар орын алған файлдың дәлдігіне дейін). Ол үшін біз барлық MFT жазбаларын сканерлейміз және файлдар орналасу тізбегін (файл фрагменттері) құрастырамыз.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 14 Файлдардың немесе олардың фрагменттерінің орналасу тізбегі.

Әрі қарай, файлдан файлға ауыса отырып, біз күтілетін файл тақырыбының орнына басқа деректер болатын сәтті іздейміз, ал қажетті тақырып белгілі бір оң жылжумен табылады. Ал ауысым нүктелерін нақтылай отырып, кестені толтырамыз. Оны толтыру нәтижесі файлдардың 99%-дан астамы зақымданбайды.

Бір деректерді қалпына келтіру әрекетінің азапты немесе ұзақ тарихы арқылы жүру
Күріш. 15 Пайдаланушы файлдарының тізімі (клиенттен осы скриншотты жариялауға келісім алынды)

Жеке файлдарда нүктелік жылжуларды орнату үшін сіз қосымша жұмыстарды орындай аласыз және файлдың құрылымын білсеңіз, оған қатысы жоқ деректер қосындыларын таба аласыз. Бірақ бұл тапсырмада ол экономикалық тұрғыдан мүмкін болмады.

P.S. Сондай-ақ бұрын бұл диск қолында болған әріптестеріме де айтқым келеді. Құрылғының микробағдарламасымен жұмыс істеу кезінде абай болыңыз және ештеңені өзгертпес бұрын қызмет деректерінің сақтық көшірмесін жасаңыз және жұмыс бойынша клиентпен келісе алмасаңыз, мәселені әдейі ушықтырмаңыз.

Алдыңғы жарияланым: Сіріңкелерді үнемдеу немесе тегістейтін HDD Seagate ST3000NC002-1DY166 деректерін қалпына келтіру

Ақпарат көзі: www.habr.com

пікір қалдыру