Borrando el HD

ago. 3, 2011·
Julio Batista Silva
Julio Batista Silva
· 3 min de lectura

Acabo de vender mi notebook más antiguo por Mercado Libre (increíble cómo se devaluó de R$ 2700,00 a R$ 700,00 en solo 3 años).

Algo que considero importante antes de vender un notebook es borrar todos los archivos personales, archivos confidenciales, contraseñas guardadas y cualquier otra información que pueda perjudicarte si cae en manos equivocadas. ¿La solución sería formatear el disco? Incorrecto.

A menos que el disco esté cifrado, formatear no es suficiente. Tras un formateo común, los bloques que contenían datos simplemente se marcan como disponibles en la tabla de direcciones; es decir, los datos siguen en el disco y pueden recuperarse con herramientas específicas, como extundelete, sobre el cual escribí en otro artículo.

La forma más eficiente de limpiar completamente el disco y hacer que los datos sean irrecuperables sin daño al hardware es la técnica conocida como disk wiping usando disk scrubbing, que básicamente sobrescribe todo el disco con ceros y/o unos.

El método más tradicional y simple para hacer disk scrubbing en sistemas Unix es usar dd o cat.

  1. Arranca con un live disk

  2. Opcionalmente borra todas las particiones con gparted o fdisk

  3. Verifica badblocks con badblocks o fsck:

    badblocks -wvs /dev/sda
    fsck -f /dev/sda
    

    Creo que usar -w con badblocks ya es suficiente para impedir la recuperación de datos, pues escribe varias veces en todos los bloques del disco. Para repetir la verificación múltiples veces, usa la opción -p. El proceso tarda varias horas; una forma de acelerarlo es aumentar el número de bloques probados por vez con -c.

  4. Usa uno de los siguientes métodos, repitiéndolo tantas veces como creas necesario.

    Dos pasadas deberían ser suficientes, a menos que el disco sea analizado por especialistas muy determinados.

    • Método 1

      Escribir ceros en todo el disco: dd if=/dev/zero of=/dev/sda

    • Método 2

      Escribir ceros y unos aleatoriamente (recomendado): dd if=/dev/urandom of=/dev/sda

    • Método 3

      Misma función que los anteriores, pero usando cat. Escribe bits aleatorios dos veces y ceros en la tercera.

      cat /dev/urandom > /dev/sda;
      cat /dev/urandom > /dev/sda;
      cat /dev/zero > /dev/sda
      

      En un HD de 250 GB lo ejecuté con algunos mensajes para tener noción del tiempo, pero incluso tras 10h no había terminado la primera pasada:

      echo "Inicio en `date`";
      
      cat /dev/urandom > /dev/sda;
      echo "Escritura #1 finalizada en `date`";
      
      cat /dev/urandom > /dev/sda;
      echo "Escritura #2 finalizada en `date`";
      
      cat /dev/zero > /dev/sda;
      echo "Escritura #3 finalizada en `date`"
      

      Por lo tanto, me parece mejor usar algún programa que muestre el progreso.

    • Método 4

      shred: Ya viene instalado en varias distribuciones. Ejemplo de uso: shred -n 3 -z -v /dev/sda.

    • Método 5

      Usa otro programa. Existen varios softwares gratuitos para este fin que escriben ceros y unos en todo el disco y repiten el proceso automáticamente varias veces.

      En una búsqueda rápida encontré: DBAN, Autoclave, Wipe, KillDisk.

      Aparentemente el más usado es DBAN, un boot disk de 11 MB que puede descargarse en http://www.dban.org/.

      El proceso es un poco demorado y depende del HD; en promedio puede llevar alrededor de 2 minutos por GB.


Enlaces

Julio Batista Silva
Autores
Senior Cloud Developer
comments powered by Disqus