La agonía o la larga historia de un intento de recuperación de datos

En el patio fue el año 2019. El disco QUANTUM FIREBALL Plus KA con una capacidad de 9.1 GB llegó a nuestro laboratorio, lo que no es muy habitual en nuestro tiempo. Según el propietario de la unidad, la falla ocurrió en 2004 debido a una falla en la fuente de alimentación, que agarró un disco duro y otros componentes de la PC. Luego hubo caminatas sobre varios servicios con intentos de reparar la unidad y restaurar los datos que no tuvieron éxito. En algún lugar prometieron que era barato, pero aún no resolvieron el problema, en algún lugar era demasiado costoso y el cliente no quería restaurar los datos, pero al final el disco pasó por muchos centros de servicio. Se perdió varias veces, pero debido al hecho de que el propietario se encargó de registrar la información de varias etiquetas adhesivas en el disco, logró asegurarse de que su disco duro fuera devuelto por algunos centros de servicio. Los circuitos no pasaron desapercibidos, en la placa del controlador original había múltiples trazas de soldadura, y la falta de elementos SMD también se sintió visualmente (mirando hacia el futuro, diré que este es el menor de los problemas de esta unidad).


Fig. 1 HDD Quantum Fireball Plus KA 9.1GB

Lo primero que tuve que hacer fue buscar en el archivo de donantes de un hermano gemelo tan antiguo de esta unidad con una placa controladora en funcionamiento. Cuando se completó esta búsqueda, se hizo posible llevar a cabo medidas de diagnóstico detalladas. Después de verificar los devanados del motor para detectar un cortocircuito y asegurarnos de su ausencia, instalamos la placa desde la unidad, el donante hasta la unidad, el paciente. Energizamos y escuchamos el sonido normal del eje girando, pasando la prueba de calibración con la carga del firmware, y después de unos segundos, la unidad se registra a través de los registros sobre su disponibilidad para responder a los comandos de la interfaz.


Fig. 2 indicadores DRD DSC indican que está listo para aceptar comandos.

Reservamos todas las copias de los módulos de firmware. Verificamos la integridad de los módulos de firmware. No hay problemas con la lectura de los módulos, pero el análisis de los informes muestra que hay algunas rarezas.


Fig. 3. Tabla de zonas.

Prestamos atención a la tabla de distribución de zonas, notamos que el número de cilindros es 13845.


Fig. 4 P-list (lista primaria: una lista de defectos introducidos durante el ciclo de producción).

Prestamos atención a muy pocos defectos y su localización. Observamos el módulo para ocultar defectos de fábrica (60h) y encontramos que está vacío y no contiene ninguna entrada. En base a esto, podemos suponer que en algunos de los centros de servicio anteriores, se pudieron haber realizado algunas manipulaciones con el área de servicio de la unidad, y se grabó accidental o intencionalmente un módulo extraño, o se borró la lista de defectos en el original. Para verificar esta suposición, creamos una tarea en Data Extractor con las opciones "crear una copia sector por sector" y "crear un traductor virtual" habilitado.


Fig. 5 parámetros de la tarea.

Después de crear la tarea, observamos las entradas en la tabla de particiones en el sector cero (LBA 0)


Fig. 6 Registro de arranque maestro y tabla de particiones.

En el desplazamiento 0x1BE, hay un único registro (16 bytes). El tipo de sistema de archivos en la partición es NTFS, el desplazamiento al comienzo del sector 0x3F (63), el tamaño de la partición es 0x011309A3 (18,024,867) sectores.
En el editor del sector, abra LBA 63.


Fig. 7 sector de arranque NTFS

De acuerdo con la información en el sector de arranque NTFS, se puede decir lo siguiente: el tamaño del sector adoptado en el volumen es 512 bytes (la palabra 0x0200 (512) se escribe en el desplazamiento 0x0B), el número de sectores en el clúster es 8 (el byte 0x08 se escribe en el desplazamiento 0x0D), el tamaño del clúster es 512x8 = 4096 bytes, el primer registro MFT se encuentra en un desplazamiento de 6.291.519 sectores desde el comienzo del disco (en el desplazamiento 0x30 la palabra cuádruple 0x00 00 00 00 00 00C 00 00 (786 432) es el número del primer grupo MFT. El número de sector se calcula mediante la fórmula: Número de grupo * el número de sectores en el cluster + shift antes del inicio de la partición 786 432 * 8 + 63 = 6,291,519).
Pasamos al sector 6 291 519.


Fig. 8

Pero los datos contenidos en este sector son completamente diferentes del registro MFT. Aunque esto indica una posible transmisión incorrecta debido a una lista de defectos incorrecta, no prueba este hecho. Para una mayor verificación, leeremos el disco en 10,000 sectores en ambas direcciones en relación con 6,291,519 sectores. Y luego buscaremos expresiones regulares en la lectura.


Fig. 9 Primer registro MFT

En el sector 6.291.551, encontramos el primer registro MFT. Su posición difiere de la calculada por 32 sectores, y luego un grupo de 16 registros (de 0 a 15) sigue continuamente. Ingresemos la posición del sector 6 291 519 en la tabla de cambios para avanzar 32 sectores.


Fig. 10

La posición del registro No. 16 debe estar en un desplazamiento de 12 551 431, pero allí encontramos ceros, en lugar de registrar MFT. Realizaremos una búsqueda similar en los alrededores.


Fig. 11 Registro MFT 0x00000011 (17)

Se detecta un gran fragmento de MFT, comenzando con el número de registro 17 con una longitud de 53,646 registros) con un desplazamiento de 17 sectores. Para la posición 12 155 431 colocaremos un cambio de +17 sectores en la tabla de cambios.
Habiendo determinado la posición de los fragmentos de MFT en el espacio, podemos concluir que esto no parece una falla aleatoria y el registro de fragmentos de MFT por compensaciones incorrectas. Una versión con un traductor incorrecto puede considerarse confirmada.
Para una mayor localización de los puntos de corte, establecemos el desplazamiento máximo posible. Para hacer esto, determinamos cuánto se desplaza el marcador de partición NTFS final (copia del sector de arranque). En la Figura 7, en el desplazamiento 0x28, la cuarta palabra es el valor del tamaño de partición 0x00 00 00 00 00 01 13 09 A2 (18,024,866) sectores. Agreguemos el desplazamiento de la partición en sí desde el comienzo del disco a su longitud; obtendremos el desplazamiento del marcador NTFS final 18,024,866 + 63 = 18,024,929. Como era de esperar, no se necesitaba una copia del sector de arranque. Al buscar en las proximidades, se detectó con un cambio creciente de +12 sectores en relación con el último fragmento de la MFT.


Fig. 12 Copiar sector de arranque NTFS

Ignoramos otra copia del sector de arranque en el desplazamiento 18 041 006, ya que no está relacionado con nuestra sección. Con base en eventos anteriores, se encontró que dentro de la sección hay intercalados entre 61 sectores que "aparecieron" en la transmisión, que dividieron los datos.
Realizamos una lectura de unidad completa, lo que da como resultado 34 sectores no leídos. Desafortunadamente, es imposible garantizar de manera confiable que todos ellos sean defectos eliminados de la lista P, pero es recomendable tener en cuenta su posición durante el análisis posterior, ya que en algunos casos será posible determinar de manera confiable los puntos de cambio precisos para el sector, y no para el archivo.


Fig. 13 Estadísticas de lectura de disco.

Nuestra próxima tarea será establecer los lugares aproximados de los turnos (precisos para el archivo en el que surgieron). Para hacer esto, escanearemos todos los registros MFT y crearemos las cadenas de ubicación del archivo (fragmentos de archivo).


Fig. 14 Las cadenas de la ubicación de los archivos, o sus fragmentos.

Además, al pasar de un archivo a otro, estamos buscando en qué punto, en lugar del encabezado del archivo esperado, habrá otros datos, y el encabezado deseado se detectará con un cierto desplazamiento positivo. Y a medida que se refinan los puntos de cambio, completamos la tabla. El resultado de su llenado será más del 99% de los archivos sin daños.


Fig. 15 Lista de archivos de usuario (consentimiento recibido del cliente para publicar esta captura de pantalla)

Para establecer cambios de puntos en archivos individuales, puede llevar a cabo trabajo adicional y, si conoce la estructura del archivo, puede encontrar entremezclas de datos que no están relacionadas con él. Pero en esta tarea no era económicamente factible.

PD: También me gustaría hacer un llamamiento a los colegas en cuyas manos ha estado este disco antes. Tenga cuidado al trabajar con el firmware del dispositivo y reserve los datos de servicio antes de cambiar cualquier cosa, y tampoco permita que el problema se agrave deliberadamente si no puede llegar a un acuerdo con el cliente sobre la ejecución del trabajo.

Siguiente publicación: autodiagnóstico de discos duros y recuperación de datos
Publicación anterior: Guardar en coincidencias o recuperar datos del disco duro de rejilla Seagate ST3000NC002-1DY166

Source: https://habr.com/ru/post/475146/


All Articles