Borrado seguro de un disco duro

Seguro que no es la primera vez que nos hemos deshecho o vendido algún viejo ordenador, un pendrive que ya no nos sirve para mucho, un disco duro externo, etc. Y lo normal es formatear estos dispositivos para que nadie pueda tener acceso a la información que tenías antes.

Podemos pensar que haciendo un simple formateo o el reseteo de fábrica puede ser más que suficiente. Y por norma, para alguien sin suficientes conocimientos, puede ser suficiente, pero no resulta complicado recuperar la información que había previamente.

Una forma de hacer este proceso más seguro es formatear totalmente el disco duro (y después si queremos, regalarlo, venderlo o lo que sea, siempre podemos reinstalar algún sistema operativo). Vamos a explicar cómo hacer esto desde linux, ya que podemos utilizar un live cd/usb con alguna distribución ligera de linux para poder arrancarlo fácilmente y realizar la tarea que queremos.

Yo he utilizado una versión de Linux Lite para realizar este proceso.

Lo primero que necesitamos, si no tenemos ya un live usb, es crearnos uno. Desde linux lo podemos realizar fácilmente con la herramienta dd:

sudo dd if=linux-lite-3.8-32bit.iso of=/dev/sda bs=1024 conv=noerror,sync

donde indicaremos con la opción «if» el nombre del fichero de entrada, en este caso la iso que queramos usar, y con la opción «of» el dispositivo de salida. El resto de las opciones las podemos ver fácilmente con dd –help 😉

Si no sabemos cuál es el nombre de nuestro pendrive, podemos averiguarlo fácilmente ejecutando el siguiente comando para listar el sistema de ficheros (con la opción -h para que sea más legible)

df -h

Una vez que hayamos creado nuestra distribución bootable, arrancaremos en nuestro portatil desde el usb y abriremos una terminal (igualmente, podemos usar df -h para averiguar cual es el disco duro que queremos formatear).

El siguiente paso es formatear la partición que queremos. Para ello, vamos a usar de nuevo la herramienta dd para borrar todo el disco, pudiendo escribir todo el dispositivo con el código ascii 0x00.

sudo dd if=/dev/zero of=/dev/sdb

Como vemos, estamos indicando que el valor de entrada es /dev/zero (el código ascii 0x00) y el dispositivo de salida el disco (o la partición si indicamos /dev/sdb1, /dev/sdb2…) que queremos borrar.

Sin embargo, escribiendo todos los sectores a 0 y tal y cómo están diseñados los discos duros, se puede llegar a averiguar qué era lo último que había escrito antes de la última operación, ya que solo tendríamos que comprobar qué valores eran distintos de 0 antes de la última operación de escritura.

Existe una forma más segura de formatear un disco duro, y es escribir con valores aleatorios. Para ello, podemos utilizarlo de esta manera:

sudo dd if=/dev/urandom of=/dev/sdb

Por supuesto, este método es algo más lento que el anterior, pero resultaría más complicado averiguar cuales era los valores anteriores, ya que no sabemos cuál es el último valor que se ha escrito.

Como extra, si queremos el ver progreso de nuestro formateo, podemos añadir la opción status=progress o bien ejecutar en otra terminal el siguiente comando:

sudo pv -d $(pidof dd)

Y ya puestos, en modo paranoico podemos realizar este proceso varias veces para asegurarnos de que el disco se está borrando completamente sin dejar ningún rastro de lo que teníamos antes. Podemos crearnos un script y ejecutarlo para completar nuestra tarea. Esta es la forma en la que el gobierno de EEUU recomienda realizar el borrado de forma segura de cualquier dispositivo.

#!/bin/bash 
for n in `seq 7`; do dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc; done

Categorías