Resolver problema con disco SATA Bloqueado

Últimamente estoy escribiendo más porque estoy trasteando más con los ordenadores que tengo por casa. El caso es que tenía un disco duro que quería deshacerme de él, no sin antes borrar todos los datos de forma segura, nunca se sabe en manos de quién podría acabar…

El caso es que ya existen funcionalidades muy interesantes que, precisamente, se encargan de hacer este trabajo. Una de ellas es la aplicación «Discos» de gnome (gnome-disks), que desde su aparición en Gnome 3 ha sido todo un descubrimiento para mí. Puedes ver datos de estado SMART, gestionar particiones (no tan bien como en gparted, pero oye, ahí está), etc…

Una de ellas es que al dar al botón de formatear disco, aparece una opción que se llama «Borrado seguro ATA mejorado». Ni idea de que era, así que le di a continuar. Eso sí, algo lento: varias horas, pero bueno, al final es normal… quieras o no son muchos datos que borrar y muchos gigas que escribir de nuevo.

Ventana de selección de formateado
Ventana de selección de formateado

Pero bueno, el problema real vino un rato después, cuando estando a punto de acabar el borrado, de repente, se cortó la corriente… Al principio ni me preocupé, pero cuando traté de formatear el disco y crear una partición… Ahí si que ví el problema realmente: Fallo de E/S (Entrada / Salida): No se puede acceder a /dev/sdb.

Es entonces cuando me tocó aprender un poco más de qué iba eso del borrado seguro ATA y qué me había pasado a mí. Así que llegué a una de las primeras respuestas gracias a la Wiki del kernel, que tiene un artículo que lo explica detenidamente: https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

Para resumir, hice dos cosas mal:

  • Usar el disco duro a través de un controlador USB. La página advierte de esta práctica y lo desaconseja totalmente, ya que podría dejar el disco totalmente inutilizado (brickeado).
  • Cortar la corriente antes de que haya acabado el proceso. Esto no depende mucho de mí, en realidad, ya que es un factor externo, pero ha sido determinante, desde luego, para inutilizar el disco, como me ha pasado.

Así que en mi caso me tocó desmontar el disco de su controlador USB – SATA y enchufarlo directamente a la placa base de mi ordenador. Desde allí tendremos acceso a más funcionalidades.

Un apartado crucial que se realiza en el borrado SATA es que el disco se bloquea con una contraseña durante el proceso. Para nosotros es totalmente transparente, ya que el programa pone una y luego la quita. El problema es que sólo la quita si el borrado acaba, la cosa es que nunca acabó.

Así que buscando un poco con los comandos que aparecen en la guía, se pueden ver varios parámetros. En mi caso, el disco, efectivamente, estaba bloqueado:

sudo hdparm -I /dev/sdb
Estado «bloqueado» (locked) en el apartado de seguridad

Otros comandos probados me escupían un error parecido, bastante relacionado:

SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 04 51 40 01 21 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Así que en realidad, la única opción que me quedaba probar era desbloquear el dispositivo y esperar que todo volviera a funcionar bien. Sin embargo, el programa Discos de Gnome ya usó una contraseña para bloquear el disco durante el borrado. Pero ¿cuál era?

Buscando un poco encontré la respuesta fácilmente: Discos es un frontend de la utilidad udisks, cuyo código, afortunadamente, es abierto, así que buscando en él podemos encontrar la contraseña, que es: «xxxx». ¡Tan sencilla como esa! Pues nada, simplemente escribimos este comando para desbloquear el disco duro:

sudo hdparm --user-master u --security-unlock xxxx /dev/sdb

Y sólo nos faltaría comprobar de nuevo con sudo hdparm -I /dev/sdb que realmente, en el apartado de seguridad, ya no está bloqueado:

El disco ya aparece con el texto «not locked» en el apartado de seguridad

Así que ya, a partir de ahora, el disco vuelve a estar libre. Yo en mi caso volví a empezar de nuevo el borrado SATA con la aplicación de GNOME, esperando que esta vez no se cortase la luz.

Reparar pendrive en Linux cuando da problema de «Sólo lectura»

Hoy me ha pasado que estaba trabajando con un archivo abierto en un pendrive, y sin querer, lo había desconectado y vuelto a conectar. Al intentar guardar, el pendrive (entero) daba un error al escribir, alegando que era un dispositivo de sólo lectura.

Reparar Pendrive
Con esta utilidad se puede reparar el modo de sólo lectura de un pendrive

He estado buscando por Internet la solución, y la he encontrado. No ha sido muy difícil, pero hay que saber cómo hacerlo xD.

Primero debemos saber la dirección del dispositivo, que podemos averiguar con la utilidad «discos» de GNOME o con el comando «sudo fdisk -l».

Una vez que lo sepamos, debemos dirigirnos a la terminal como superusuario, e introducir:

sudo umount /media/PENDRIVE

para desmontar la unidad. Se debe sustituir /media/PENDRIVE por la ruta que corresponda en cada caso. Ahora que ya no está montado, ejecutamos:

sudo fsck -r /dev/sdc1

Donde /dev/sdc1 debe ser nuestro dispositivo estropeado. Nos hará algunas preguntas, para terminar preguntando que si queremos llevar a cabo los cambios. Respondemos que sí y lo tendremos arreglado!

NOTA: Este método sólo sirve si el sistema de ficheros se ha quedado bloqueado por algún fallo de coherencia, provocado cuando se desenchufa del equipo sin expulsar el dispositivo. Es muy probable que si el pendrive sigue mostrando un mensaje de «Sólo Lectura» sea un problema de hardware más grave.

Nota 2: Por experiencia propia, este método rara vez funcionará si no es por la causa mencionada en la nota anterior. Mis esfuerzos en recuperar un Pendrive de la marca SanDisk Cruzer de 16GB fueron del todo infructuosos. Parece ser que el firmware de la propia memoria se pone en modo de sólo lectura antes de que falle por completo, para al menos poder leer lo que estaba guardado y evitar males mayores. Mi recomendación, si estáis en este caso es que hagáis una copia de seguridad cuanto antes, y utilizar marcas más fiables, como Toshiba.

Un saludo