Solución a los Seagate con firmware SD15 que han dejado de ser reconocidos por el PC

¿Tienes a mano un disco duro de la marca Seagate, de la familia Barracuda 7200.11, con firmware SD15 que ha dejado de funcionar espontáneamente? Puede que estés de suerte, porque si el disco no ha sufrido otro tipo de daños (golpes, subidas de tensión, etc.), existe una forma relativamente sencilla de solucionarlo, echando mano de ciertos componentes electrónicos que se pueden comprar por internet o en tiendas especializadas (o, si tienes un ordenador viejo, puede que te puedas apañar con unos cables y un destornillador).

Seagate de la familia Barracuda 7200.11

Lo primero de todo, como no puede ser de otro modo, es alertar a los aventurados: este procedimiento solo funcionará con los discos duros de la familia Barracuda 7200.11, que tengan firmware SD15, y que hayan sufrido el fallo de firmware que intentamos solucionar. Saber o no que ha sufrido este tipo de fallo no se puede saber sin herramientas especializadas que puedan extraer y analizar ciertos módulos del firmware del disco, por lo que sin esas herramientas, solo podemos intuir lo que le ocurre al disco duro. Si lo que quieres es recuperar los datos de tu disco duro, pero éstos no te importan demasiado, adelante. Es posible que el fallo que tenga tu disco no sea el mismo que vamos a intentar solucionar, o es posible que algún paso vaya mal o no de la manera esperada, y, lo que es peor, puede que tu disco quede totalmente inutilizado y haya que enviarlo a un sitio especializado para poder extraer los datos de él. Si decides continuar con el proceso, es bajo tu propia responsabilidad, y debes tener mucho cuidado de hacer exactamente las cosas como se van a detallar.

¿Seguimos, pues? ¡Adelante!

1. Qué problema vamos a intentar solucionar.

Los discos Seagate de la familia Barracuda 7200.11, de diversos tamaños (500 GB, 750 GB, 1 TB y 1.5 TB) tienen un fallo de diseño en el firmware SD15 que traen de serie, que es debido a la corrupción del log de eventos que registra el disco duro en determinadas circunstancias.

Los Seagate de esta familia tienen un log de eventos circular, habitualmente con un tamaño de 320 registros. Desde el momento en que se enciende el disco duro, éste comienza a registrar eventos, que van desde errores detectados y corregidos en su operación, hasta mediciones no habituales en aceleraciones externas (por ejemplo, cuando recibe un golpe). Debido a un fallo de diseño, el puntero que registra la posición del siguiente evento a escribir en el log, está desplazado una posición. Esta circunstancia normalmente no va a ser un problema para el correcto funcionamiento del disco; si lo fuese, se habría detectado en la fase de pruebas en el proceso de fabricación. Sin embargo, si el disco se apaga coincidiendo con que el último registro del log que se escribió era el de la posición más alejada de la lista (la posición 320), y además el patrón escrito en dicho registro tiene ciertas características, ocurrirá que en el siguiente arranque, durante la fase de comprobación de integridad del disco (que sucede después de los primeros cuatro o cinco segundos tras el arranque), éste detectará una corrupción de memoria al detectar que el puntero del log está apuntando a una zona prohibida, y causará una condición de error que impedirá su funcionamiento para proteger el resto de datos que contiene el disco. Además, esta condición se quedará registrada en la SMART del disco duro, de modo que en subsiguientes arranques y en la fase de lectura de la SMART, el mismo disco se impedirá a sí mismo el acceso a los datos para protegerlos.

Es importante añadir que en muchas ocasiones, este log de eventos se va llenando debido a errores que ocurren en el acceso a los sectores del disco duro, por lo que el problema de firmware que vamos a tratar de solucionar puede estar realmente ocultando un problema mucho más serio (cabezales de lectura dañados o débiles, o multitud de sectores defectuosos – incluso daños en los platos magnéticos).

2. Cómo identificar el problema.

Dependiendo de algunas circunstancias como el patrón que se escribió en la última posición del log de eventos o el modelo exacto del disco, este problema que nos impide recuperar los datos del disco duro se puede identificar de varias formas:

  • El BIOS del ordenador es capaz de ver el disco duro, pero éste reporta una capacidad de 0 bytes (Error LBA 0).
  • El BIOS del PC es incapaz de ver el disco duro, pero el disco duro es incapaz de alcanzar rápidamente su estado de readiness; es decir, gira, está bien conectado, no hace ruidos raros, no se para en ningún momento, pero no acepta comandos de acceso a los datos (Error BSY).

Existe una forma más fiable de reconocer el fallo, pero requiere ciertos pasos y ciertas herramientas que detallaremos más adelante.

3. Qué hay que hacer para solucionar temporalmente el fallo.

Para poder acceder a los datos de nuevo, tenemos que devolver al disco a un estado en el que el puntero del log vuelva a una posición permitida, y la SMART no indique al disco duro que éste ha fallado. Para hacer esto, vamos a formatear la SMART, borrar el área que contiene el log de eventos, y regenerar de este área el módulo encargado de tener en cuenta los sectores descartados para su utilización (conocido como el translator). Esta última parte es de vital importancia para nuestros datos, porque se encarga de traducir los sectores de la capa física del disco duro a unos sectores intermedios, que son los que presentan como sectores físicos al mundo exterior -más allá de su interfaz ATA-.

4. Material necesario.

Más allá de las máquinas especializadas que utilizamos en los laboratorios de recuperación de datos, que nos facilitan esta tarea para hacerla de un modo más profesional y menos error prone, así como nos ayudan con muchos otros fallos lógicos, mecánicos, y de firmware, para este caso concreto se pueden utilizar varios componentes de relativamente fácil adquisición. Para poder recuperar los datos de nuestro disco duro Seagate, necesitaremos el siguiente material:

  • Un destornillador Torx T3, (de punta de estrella de seis picos).

Punta de un destornillador Torx T3

  • Una tarjeta de visita de plástico o cartón, o un aislante similar (un Post-it doblado varias veces, o un trozo de cartón de una caja de cereales).
  • Un puerto serie UART/USART en nuestro ordenador, con niveles de tensión TTL. Por ponerlo más sencillo, nos vale cualquier conversor de USB a COM/UART/USART, que podemos encontrar por internet o tiendas de electrónica a menos de 10 euros, y tiene esta pinta:

Conversor de USB a puerto COM USART/UART

  • Tres cables de al menos 20 cm de largo para poder trabajar cómodamente con el disco duro enchufado al conversor USB a USART.

Cables para conectar el disco duro con el adaptador USB a USART

  • Un cable de corriente SATA, procedente de una caja de disco duro externa o el interior del PC:

Conector de alimentación de discos duros SATA

  • Un programa de hyperterminal, que nos permita comunicarnos con el puerto serie o puerto COM. En sistemas operativos Windows, viene en las versiones XP y anteriores. Para versiones posteriores, se puede descargar de Internet.

Captura de pantalla del Hyperterminal de Windows

  • Y, por supuesto, un Seagate de la familia Barracuda 7200.11 con firmware SD15, del que queremos recuperar los datos.

5. Manos a la obra.

5.1. Comenzando

Para poder acceder a los datos de nuestro Seagate, lo primero que tenemos que hacer es instalar los drivers de nuestro adaptador de USB a UART/USART y conectarlo a nuestro PC. Para comprobar que está correctamente conectado, debemos ser capaces de ver que el PC ha asignado un puerto COM a nuestro adaptador:

Administrador de dispositivos de Windows mostrando el puerto COM asignado al adaptador

A continuación, debemos conectar tres cables al adaptador, a las patas señaladas como Rx (recepción de datos), Tx (transmisión de datos), y GND (punto de referencia eléctrica o masa). Luego, estos cables se deben conectar al disco duro, que debe estar apagado. Deben quedar de la siguiente manera:

DISCO DURO               ADAPTADOR USB/USART
   GND ------------------------- GND
    Tx ------------------------- Rx
    Rx ------------------------- Tx

Es decir, que las masas deben quedar conectadas para que la referencia sea común, y el transmisor de uno debe quedar conectado al receptor del otro, y viceversa. Hay que tener un poco de cuidado, pues a veces, los adaptadores de USB a USART vienen con los pines Rx y Tx cambiados, de modo que quedan Rx con Rx y Tx con Tx. Si hay manual del aparato, lo mejor es echarle un ojo.

Pines del puerto serie al lado del interfaz SATA

Una vez está todo conectado, arrancamos el Hyperterminal con las siguientes opciones de configuración:

  • Velocidad de transmisión de datos (baudrate): 38400 bps.
  • Bit de paridad: No.
  • Bits de datos (tamaño de la palabra): 8 bits
  • Control de flujo por hardware: No.
  • Bits de parada o banda de guarda (stop bits): 1 bit

A conticuación iniciamos la conexión en el Hyperterminal, descolgando el teléfono si usamos el Hyperterminal de Windows (un botón con un teléfono amarillo). El disco duro todavía está apagado; es decir, sin el conector de corriente SATA enchufado.

5.2. Cerrando el cerco

Si queremos estar un poco más seguros de que el problema de nuestro disco duro Seagate es el que estamos intentando arreglar en este post, llegados a este punto podemos encender el disco duro, enchufándole el conector de alimentación SATA. El motor se pondrá a girar, el disco duro realizará las tareas de calibrado, y a continuación leerá la SMART y será incapaz de alcanzar el estado de espera normal. En este punto, lo más normal es que el disco envíe a través del puerto serie un mensaje de error como el siguiente:

LED:000000CC FAddr:0025A1E1

Ver este mensaje de error en el Hyperterminal no quiere decir de modo fulminante que nuestro disco duro tiene el problema que estamos intentando solucionar, del mismo modo que no verlo no significa lo contrario. Si el mensaje no aparece directamente, podemos probar a teclear Ctrl + Z (mantener la tecla Ctrl y pulsar la tecla Z, quedando las dos pulsadas a la vez por un instante), para ver si aparece el mensaje. Desconectaremos la alimentación al terminar este paso.

5.3. Preparación del disco

Una vez que hemos comprobado que el error que tiene nuestro Seagate es el que creemos que es, para poder recuperar los datos del mismo vamos a hacer lo siguiente:

  • Desconectar el motor del disco duro del resto de la placa electrónica o PCB. Con esto logramos que el disco arranque sin haber leído ciertos parámetros de funcionamiento ubicados en los mismos platos magnéticos, que le indican al disco (o le hacen creer) que está estropeado. De este modo, el disco duro se pondrá en funcionamiento solo con la información de su memoria ROM, que, con un poco de suerte, estará intacta. Para desconectar el motor, tenemos que desatornillar el tornillo que junta los contactos del motor con la PCB, y meter la tarjeta de visita u otro aislante entre medias para que los platos no giren y el disco no pueda acceder a sus datos. Debe quedarnos algo parecido a esto:

Tarjeta de visita que aísla el motor del resto de la PCB.

  • Conectar la fuente de alimentación del disco duro. Es decir, enchufar el conector de alimentación SATA al disco duro, y si el mismo viene de una caja de un disco duro externo, encender el interruptor de la caja. Si viene de la fuente de alimentación del mismo PC que estamos usando, hay que enchufarlo a la primera y con confianza, para evitar picos de tensión que puedan freir la PCB.
  • Una vez encendido (al no girar el motor, no se nota nada en especial), debemos teclear en el Hyperterminal Ctrl+Z (primero Ctrl y luego, manteniéndolo, Z). El disco duro debe contestar con F3 T>. Si no contesta, debemos revisar las conexiones y todos los pasos anteriores, y si sigue sin contestar, es preferible parar y no hacer nada más, pues lo más seguro es que se trate de otro problema y seguir trasteando con el disco podría ser fatal.

5.4. Los comandos AT

Si hemos llegado al punto en el que el disco contesta con los caracteres F3 T>, vamos por el buen camino y, aunque nada esté garantizado, al menos hemos obtenido accedo a la consola de comandos del disco duro. Debemos tener cuidado con lo que tecleamos a partir de ahora, pues una sola letra puede terminar destruyendo áreas críticas del disco duro, y eliminando información crucial para su funcionamiento, lo cual haría imposible la recuperación de los datos.

Debemos escribir lo siguiente:

F3 T>
F3 T>/2

El comando /2 nos sitúa en el nivel de terminal 2, lo cual da, por decirlo de alguna forma, privilegios para realizar determinado tipo de acciones.

NOTA: Cada comando requiere un intro (↵) para surtir efecto. Un intro sin haber escrito nada, devuelve otro F3 X>, siendo la X el nivel de terminal actual.

A continuación:

F3 2>Z

El comando Z detiene el motor del disco duro. Como estaba desconectado, va a tardar muy poco en “pararse”. Esto es una forma de engañar al disco, para que se quede con los parámetros de funcionamiento que ha leído de la ROM cargados en RAM, y no intente cargar los parámetros de los platos como ocurre cuando se conecta la alimentación con el bloque del motor conectado. Debería contestarnos el disco:

Spin Down Complete
Elapsed Time 0.146 msecs

A continuación, ha de quitarse el aislante del motor y debe volver a atornillarse, quedando perfectamente conectado. Como el disco tiene orden de tener el motor parado, éste no arrancará al conectarlo y poner el tornillo.

¡Alerta! Hay que tener mucho cuidado de no tocar los cables del puerto serie. Mover cualquiera de los cables introducirá ruido en el canal de comunicaciones, y al no existir control de flujo ni paridad de datos, es muy probable que el ruido transmitido sea interpretado como un comando, lo cual puede ser fatal para nuestros datos.

A continuación, con el bloque del motor ya conectado, se introduce el comando U:

F3 2>U

El comando U da instrucción de volver a arrancar el motor. Tardará unos segundos, y habrá arrancado pero no habrá cargado en RAM la estructura corrupta. Debe contestarnos:

Spin Up Complete
Elapsed Time 6.869 secs

A continuación, vamos al nivel 1 con el comando /1, y borramos la SMART con el comando N1:

F3 T>/1

F3 1>N1

Con la SMART borrada, el disco no creerá que está “estropeado” directamente, y por lo menos, volverá a verificar el log de eventos. Pero el log de eventos está corrupto, por lo que debemos borrar el área en el que está, y regenerar las partes importantes. Esto se consigue con el comando de nivel T m[A,B,C,D,E,F,G,H] con los valores 0,2,2,0,0,0,0,22 como se muestra a continuación:

Atención: Este comando reconstruye el módulo del translator del dispositivo. Si el problema de firmware que tiene el disco duro está ocultando un problema más grave, como advertido anteriormente (sectores defectuosos, etc.), es probable que el disco duro elimine durante este proceso la tabla de defectos primaria o P-List, lo cual ocasiona una pérdida de datos automática y cuya restauración se convierte en un procedimiento manual muy costoso y solo al alcance de laboratorios muy especializados.

F3 1>/

F3 T>m0,2,2,0,0,0,0,22

Pasado un minuto aproximadamente, el disco debe contestarnos con la siguiente información:

Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 00, Max Certify Rewrite Retries = 0000

User Partition Format   5% complete, Zone 00, Pass 00, LBA 00008DED, ErrCode 00000080, Elapsed Time 0 mins 05 secs        
User Partition Format Successful - Elapsed Time 0 mins 05 secs

Si en algún punto observamos algún mensaje de error, es mejor no hacer nada más, y no volver a intentarlo ni introducir otros comandos, pues estamos tratando con estructuras críticas del disco duro y cualquier cosa rara puede hacer imposible la recuperación de los datos que contiene.

5.5. Poniendo los datos a salvo

Si hemos llegado a este punto sin habernos encontrado ningún error, ¡enhorabuena! Tenemos que realizar un ciclo de alimentación (cortar la corriente y volver a dársela) para que los cambios realizados tengan efecto en el funcionamiento del disco duro.

Ahora que es posible recuperar los datos, hay que poner los datos a salvo, pues esta solución no arregla el disco. En cambio, lo deja funcionando un tiempo indeterminado, pero lo más seguro es que tarde o temprano nos vuelva a traicionar, y es posible que no exista una segunda oportunidad.

Para cualquier duda, no dudéis en comentar en el blog de Hard2bit.

Hard2bit Dr.

Recuperación de datos

Share
Published by
Hard2bit Dr.

Recent Posts

La Fusión del Metaverso y la IA: Un Nuevo Horizonte

En el umbral de una nueva era, la intersección entre la inteligencia artificial (IA) y…

1 year ago

Ataques de Directorio Activo: Tipologías, Soluciones y Prevenciones

El Directorio Activo (AD) de Microsoft es una de las implementaciones de servicios de directorio…

1 year ago

Tecnología Cuántica: Amenazas y desafíos que merecen nuestra atención

Las tecnologías cuánticas, una de las fronteras más emocionantes de la ciencia y la ingeniería…

2 years ago

¡Mantén tus datos seguros! Un análisis en profundidad de los ataques de phishing y cómo protegerte

¿Te has encontrado alguna vez con un correo electrónico, un mensaje de texto o una…

2 years ago

Los peligros de las Redes sociales para menores de edad

Hoy vamos a desglosar con profundidad un tema crítico: "Los peligros de las redes sociales…

2 years ago

Bajo el Acecho del Ciberespacio: Una mirada profunda a la Seguridad Informática en nuestra vida diaria.

En el ciberespacio, una guerra digital se libra entre delincuentes cibernéticos y defensores de la…

2 years ago