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.

Montando NFS con systemd

Últimamente he estado jugando con un NAS antiguo que tiene NFS y Syncthing, para aquello de montarte tu propia nube privada. Si me termino enterando de cómo funciona todo eso, quizás haga un artículo y lo publique aquí, ftr.

Sin embargo, antes de tener todo nuestro edificio construido, es necesario comenzar por los cimientos. Y estos cimientos no son otros que el acceso a los volúmenes de datos, por supuesto.

Esquema de funcionamiento deseado
Esquema de funcionamiento deseado

Mi objetivo primordial va a ser exponer mi NAS de 3Tb a la red usando un ordenador cualquiera (en este caso una máquina con Manjaro instalada, pero podría valer para una raspberry), para poder salvar el escollo de no tener un NAS de última generación que nos permita instalar en él mismo la aplicación de Syncthing.

Al tratarse de dos sistemas diferentes, la solución que utilicemos debe ser lo suficientemente resiliente como para poder recuperarse ante un corte en la red y reanudarse cuanto antes. También quiero poder iniciar mi ordenador normalmente sin tener activo el NAS (el cual no uso mucho y no quiero malgastar electricidad para usarlo realmente unas pocas horas).

Lo primero que se nos podría ocurrir sería tirar de /etc/fstab creando una entrada como ésta:

192.168.1.256:/mnt/md1 /mnt/NAS nfs rw,hard,intr,timeo=14,bg 0 

Si os habéis fijado, hemos especificado la opción bg al final. Con esto lo que queremos pedir al sistema es que lanze un demonio (que debe correr como background) para que trate de montar el volumen cada cierto tiempo.

Hasta aquí todo funciona perfecto, no? Podemos probar con el comando

mount -a

y vemos que si nuestro NAS está desconectado, tratará de montarlo varias veces, sin éxito, hasta que lo conectamos, que es cuando está disponible nuestra carpeta /mnt/NAS. Utilizando el comando journalctl -e podemos ver el log del sistema y ver que realmente ha hecho lo que queríamos.

Peeero… Si hubiera sido tan sencillo, ¿crees que realmente me hubiera molestado en hacer este pequeño tutorial? Probablemente no…

Continuar leyendo «Montando NFS con systemd»

[Tip] Activar servidor SSH en Manjaro / Arch Linux

consola con el comando sudo systemctl enable sshd
Ejemplo de ejecución

No es algo nada difícil, pero en ocasiones viene bien tenerlo a mano. Simplemente tendremos que usar Systemd para gestionar el demonio sshd que es el que se encarga de gestionar el acceso.

Al menos en Manjaro, el paquete ssh viene instalado por defecto, aunque puede ser que en Arch Linux no. Si no estuviera instalado, deberíamos instalarlo antes para poder continuar con el tutorial

Con este comando podemos decir a Systemd que lo deje activado «para siempre»:

sudo systemctl enable sshd

Si queremos desactivarlo en algún momento, simplemente tendremos que cambiar la palabra enable por disable.

Adicionalmente, si lo queremos sólo para nuestra sesión usaremos este otro. Quizás es lo que buscas si no tienes pensado usar tu máquina como un servidor, y te evitarás dejar puertos abiertos innecesariamente:

sudo systemctl start sshd

Para este otro caso, si queremos apagar el servicio ssh sin tener que reiniciar el ordenador, cambiamos start por stop.