Paseando pola agonía ou a longa historia dun intento de recuperación de datos

Era 2019. O noso laboratorio recibiu unha unidade QUANTUM FIREBALL Plus KA cunha capacidade de 9.1 GB, cousa que non é moi común no noso tempo. Segundo o propietario da unidade, o fallo ocorreu en 2004 debido a un fallo da fonte de alimentación, que levou o disco duro e outros compoñentes do PC. Despois houbo visitas a varios servizos con intentos de reparar a unidade e restaurar datos, que non tiveron éxito. Nalgúns casos prometeron que sería barato, pero nunca solucionaron o problema, noutros era demasiado caro e o cliente non quería restaurar os datos, pero ao final o disco pasou por moitos centros de servizo. Perdeuse varias veces, pero grazas a que o propietario se encargou de gravar previamente a información de varios adhesivos na unidade, conseguiu que o seu disco duro fose devolto dalgúns centros de servizo. Os paseos non pasaron sen deixar rastro, quedaron varios rastros de soldadura na tarxeta controladora orixinal e tamén se notou visualmente a falta de elementos SMD (de cara ao futuro, direi que este é o menor dos problemas desta unidade).

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 1 HDD Quantum Fireball Plus KA 9,1 GB

O primeiro que tivemos que facer foi buscar no arquivo de doadores un irmán xemelgo tan antigo desta unidade cunha placa controladora funcionando. Cando se completou esta procura, fíxose posible levar a cabo amplas medidas de diagnóstico. Despois de comprobar se hai curtocircuítos nos devanados do motor e asegurarnos de que non hai curtocircuítos, instalamos a tarxeta desde a unidade do doador ata a unidade do paciente. Aplicamos enerxía e escoitamos o son normal do eixe xirando, pasando unha proba de calibración coa carga do firmware, e despois duns segundos a unidade informa por rexistros de que está lista para responder aos comandos da interface.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 2 Os indicadores DRD DSC indican a disposición para recibir ordes.

Facemos unha copia de seguridade de todas as copias dos módulos de firmware. Comprobamos a integridade dos módulos de firmware. Non hai problemas cos módulos de lectura, pero a análise dos informes mostra que hai algunhas rarezas.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 3. Táboa de zonas.

Prestamos atención á táboa de distribución zonal e observamos que o número de cilindros é 13845.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 4 Lista P (lista primaria - lista de defectos introducidos durante o ciclo de produción).

Chamamos a atención sobre o número demasiado pequeno de defectos e a súa localización. Observamos o módulo de rexistro de ocultación de defectos de fábrica (60h) e descubrimos que está baleiro e non contén unha soa entrada. En base a isto, podemos supoñer que nalgún dos centros de servizo anteriores, é posible que se fixeran algunhas manipulacións coa área de servizo da unidade e que accidentalmente ou intencionalmente se escribiu un módulo estranxeiro ou a lista de defectos no orixinal. un foi despexado. Para probar esta suposición, creamos unha tarefa en Data Extractor coas opcións "crear copia sector por sector" e "crear tradutor virtual" activadas.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 5 Parámetros da tarefa.

Unha vez creada a tarefa, observamos as entradas da táboa de particións no sector cero (LBA 0)

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 6 Rexistro de arranque mestre e táboa de particións.

No offset 0x1BE hai unha única entrada (16 bytes). O tipo de sistema de ficheiros na partición é NTFS, desplazado ao comezo dos sectores 0x3F (63), o tamaño da partición 0x011309A3 (18) sectores.
No editor de sector, abra LBA 63.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 7 Sector de arranque NTFS

Segundo a información do sector de arranque da partición NTFS, podemos dicir o seguinte: o tamaño do sector aceptado no volume é de 512 bytes (a palabra 0x0 (0) escríbese no offset 0200x512B), o número de sectores do clúster é 8 (o byte 0x0 escríbese no offset 0x08D), o tamaño do clúster é 512x8=4096 bytes, o primeiro rexistro MFT está situado nun desfase de 6 sectores desde o inicio do disco (cunha compensación de 291x519 palabra cuádruple 0x30 0 00 00 00 00C 00 0 (00) número do primeiro clúster MFT O número de sector calcúlase mediante a fórmula: Número de clúster * número de sectores do clúster + compensación ao comezo da sección 00* 786+432= 786).
Pasamos ao sector 6.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Fig 8

Pero os datos contidos neste sector son completamente diferentes do rexistro MFT. Aínda que isto indica unha posible tradución incorrecta debido a unha lista de defectos incorrecta, non proba este feito. Para comprobar aínda máis, leremos o disco por 10 sectores en ambas direccións en relación aos 000 sectores. E despois buscaremos expresións regulares no que lemos.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 9 Primeira gravación MFT

No sector 6 atopamos o primeiro rexistro de MFT. A súa posición difire da calculada por 291 sectores, e despois segue continuamente un grupo de 551 rexistros (de 32 a 16). Introduzamos a posición do sector 0 na táboa de quendas e avancemos en 15 sectores.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Fig 10

A posición do rexistro número 16 debería estar na compensación 12, pero alí atopamos ceros en lugar do rexistro MFT. Imos realizar unha busca semellante nos arredores.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 11 Entrada MFT 0x00000011 (17)

Detéctase un gran fragmento de MFT, comezando polo rexistro número 17 cunha lonxitude de 53 rexistros) cunha quenda de 646 sectores. Para a posición 17, pon un desprazamento de +12 sectores na táboa de quendas.
Unha vez determinada a posición dos fragmentos MFT no espazo, podemos concluír que isto non parece un fallo aleatorio e a gravación dos fragmentos MFT con compensacións incorrectas. Unha versión cun tradutor incorrecto pódese considerar confirmada.
Para localizar aínda máis os puntos de desprazamento, estableceremos o desprazamento máximo posible. Para iso, determinamos canto se despraza o marcador final da partición NTFS (copia do sector de arranque). Na Figura 7, no desfase 0x28, a palabra cuádruple é o valor do tamaño da partición dos sectores 0x00 00 00 00 01 13 09 A2 (18). Engademos a compensación da propia partición desde o inicio do disco ata a súa lonxitude e obtemos a compensación do marcador NTFS final 024 866 18 + 024 = 866 63 18. Como era de esperar, a copia necesaria do sector de arranque non estaba alí. Ao buscar na zona circundante, atopouse cun desprazamento crecente de +024 sectores en relación ao último fragmento MFT.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 12 Copia do sector de arranque NTFS

Ignoramos a outra copia do sector de arranque no offset 18, xa que non está relacionada coa nosa partición. En base a actividades anteriores, estableceuse que dentro do apartado hai inclusións de 041 sectores que "aparecían" na emisión, que ampliaron os datos.
Realizamos unha lectura completa da unidade, que deixa 34 sectores sen ler. Desafortunadamente, é imposible garantir de forma fiable que todos eles sexan defectos eliminados da lista P, pero nunha análise posterior é recomendable ter en conta a súa posición, xa que nalgúns casos será posible determinar de forma fiable os puntos de cambio con unha precisión do sector, e non do ficheiro.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 13 Estatísticas de lectura do disco.

A nosa seguinte tarefa será establecer as localizacións aproximadas das quendas (a precisión do ficheiro no que se produciron). Para iso, analizaremos todos os rexistros MFT e crearemos cadeas de localizacións de ficheiros (fragmentos de ficheiros).

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 14 Cadeas de localización de arquivos ou dos seus fragmentos.

A continuación, pasando de ficheiro a ficheiro, buscamos o momento no que haberá outros datos en lugar da cabeceira esperada do ficheiro e atoparase a cabeceira desexada cun certo desprazamento positivo. E mentres imos perfeccionando os puntos de quenda, enchemos a táboa. O resultado de enchelo será máis do 99% dos ficheiros sen danos.

Paseando pola agonía ou a longa historia dun intento de recuperación de datos
Arroz. 15 Lista de ficheiros de usuario (recibiuse o consentimento do cliente para publicar esta captura de pantalla)

Para establecer quendas puntuais en ficheiros individuais, pódese realizar un traballo adicional e, se coñece a estrutura do ficheiro, atopar inclusións de datos que non estean relacionados con el. Pero nesta tarefa non era viable economicamente.

PD Tamén me gustaría dirixirme aos meus compañeiros, en cuxas mans estivo anteriormente este disco. Teña coidado ao traballar co firmware do dispositivo e facer unha copia de seguranza dos datos do servizo antes de cambiar calquera cousa, e non agraves deliberadamente o problema se non puideches poñerte de acordo co cliente sobre o traballo.

Publicación anterior: Gardar coincidencias ou recuperar datos dun disco duro Seagate ST3000NC002-1DY166

Fonte: www.habr.com

Engadir un comentario