Cómo borrar de verdad un disco duro
Publicado por Miguel Ángel a las 17:42
Voy a dejar aquí un apunte sobre cómo borrar de verdad y por completo el contenido de un disco duro, de forma que sea realmente imposible recuperar la información. Esto, que puede parecer una barbaridad innecesaria, podría ser conveniente en algunos casos. No sólo se destruye toda la información. En ocasiones se puede resucitar así un disco aparentemente muerto.
A la hora de vender o regalar un disco duro no parece que la gente se preocupe mucho de borrar su contenido. Esto a veces da lugar a historias como la del portátil de Amir Massoud Tofangsazan (vía mename.net).
A poco que se estudia un poco sobre sistemas de ficheros (y yo no sé casi nada) se aprende que para eliminar la información no es suficiente con borrar los ficheros, pues aunque se pierde la información de dónde están los ficheros, éstos siguen estando en el disco. Es tan fácil recuperarlos que hasta yo lo hice una vez.
Me temo que formatear el disco o la partición tampoco ayudaría mucho, pues el porcentaje de bloques que quedarían sobreescritos tiende a ser más bien bajo, dependiendo del sistema de ficheros (o eso creo). En cualquier caso, alguien con suficientes motivos para intentarlo podría recuperar buena parte de la información con mayor o menor esfuerzo.
Con estos escasos conocimientos llego a una conclusión bastante simple: una solución posible es llenar el disco de ceros, hacer que todos y cada uno de los bytes almacenables en el disco duro sea un cero redondo. Esta aproximación se me ha ocurrido gracias a la filosofía de que todo son ficheros, característica de UNIX.
De este modo, el borrado total e irreversible del disco duro se convierte en una operación extremadamente sencilla que en GNU/Linux se puede llevar a cabo con el comando dd if=/dev/zero of=/dev/hdd bs=8192
Aunque en principio este comando podría ejecutarlo cualquier usuario con permiso de escritura sobre el dispositivo del disco duro (en este caso /dev/hdd), yo prefiero dejar esta clase de trabajos para root.
El parámetro bs=8192 define un tamaño de bloques de 8K. Al principio utilizaba un tamaño de bloque de 512 bytes, que coincide con el tamaño de bloque de la mayoría de los discos duros. Esto funcionó con un disco de 4.3 GB en poco más de una hora, pero con uno de 40 GB el tiempo necesario era excesivo. Entonces cambié el tamaño de bloque a 8192 y tardó menos de media hora.
Al terminar la ejecución del comando dd que el disco está –supuestamente– lleno de ceros. Se me ocurren dos motivos para comprobar que esos ceros están ahí:
- Comprobar que los ceros que se han escrito están ahí, por lo que la información eliminada ya no es accesible.
- Comprobar que los ceros que se han escrito se pueden leer.
Esta comprobación tiene sus matices:
- Existe la posibilidad de que no se haya podido escribir en algunos bytes, pero como éstos ya contenían ceros desde el principio no será posible detectar esto.
- O peor aún, puede que al no poder leerse un byte el resultado de la lectura sera un cero, en cuyo caso no se puede saber qué dato contiene el disco.
En cualquier caso, me temo que un disco duro que pudiera ocasionar estos problemas no sería mucho más útil que un pisapapeles.
Me gustaría poder dar un comando sencillo de leyera un fichero y mostrara una estadística de la cantidad, porcentaje y rango de posición de los bytes no nulos contenidos en un fichero, pero me daba mucha pereza buscar algo tan específico y preferí escribirlo yo mismo: checkzero.c
Una última observación antes de pasar a ver un ejemplo práctico: vender un disco duro sin una tabla de particiones válida podría resultar molesto para el comprador, y resulta que una tabla de particiones llena de ceros no es válida. Según qué comprador, podría ser molesto venderlo sin ninguna partición.
En mi caso los he vendido con una tabla de particiones vacía, que es lo mínimo para que ningún programa de particionado se queje. Crear una tabla de particiones vacía en GNU/Linux es tan fácil como intentar acceder a la tabla de particiones del disco y dejar que fdisk se encargue de crear una tabla de particiones nueva. Esto puede hacerse de forma no interactiva con el comando echo -n “w\n” | fdisk /dev/hdd
En cuanto a recuperar un disco duro aparentemente muerto, sólo decir que un disco duro puede no querer funcionar por el mal estado de su sistema de ficheros –y dar la sensación de estar dañado– cuando en realidad se encuentra físicamente bien. Una limpieza a fondo como ésta podría resucitarlo, pero aún no lo he comprobado detalladamente.
Y ahora un ejemplo:
root@mort:~# time dd if=/dev/zero of=/dev/hdd bs=8192 dd: escribiendo «/dev/hdd»: No queda espacio en el dispositivo 4885336+0 records in 4885335+0 records out 40020664320 bytes (40 GB) copied, 1646,36 seconds, 24,3 MB/s real 27m26.375s user 0m1.204s sys 1m26.058s root@mort:~# echo -n "wn" | fdisk /dev/hdd El dispositivo no contiene una tabla de particiones DOS válida ni una etiqueta de disco Sun o SGI o OSF Se está creando una nueva etiqueta de disco DOS. Los cambios sólo permanecerán en la memoria, hasta que decida escribirlos. Tras esa operación, el contenido anterior no se podrá recuperar. El número de cilindros para este disco está establecido en 77545. No hay nada malo en ello, pero es mayor que 1024, y en algunos casos podría causar problemas con: 1) software que funciona en el inicio (p.ej. versiones antiguas de LILO) 2) software de arranque o particionamiento de otros sistemas operativos (p.ej. FDISK de DOS, FDISK de OS/2) Atención: el indicador 0x0000 inválido de la tabla de particiones 4 se corregirá mediante w(rite) Orden (m para obtener ayuda): ¡Se ha modificado la tabla de particiones! Llamando a ioctl() para volver a leer la tabla de particiones. Se están sincronizando los discos. root@mort:~# fdisk -l /dev/hdd Disco /dev/hdd: 40.0 GB, 40020664320 bytes 16 cabezas, 63 sectores/pista, 77545 cilindros Unidades = cilindros de 1008 * 512 = 516096 bytes Disposit. Inicio Comienzo Fin Bloques Id Sistema root@mort:~# ./checkzero /dev/hdd Analizando '/dev/hdd'... Primer byte no nulo encontrado: 511 Fichero /dev/hdd leido sin problemas Número de bytes analizados: 4.00207e+10 Número de bytes no nulos: 2 (4.997418294e-09 %) Primer byte no nulo: 511 Último byte no nulo: 512



Jake a las 21:38 del 29 de Mayo de 2006.
Llenar el disco de ceros es un buen sistema, pero al parecer tampoco es suficiente. Los discos duros son medios de almacenamiento magnético y, aunque tú escribas ceros justo antes de deshacerte de él, la configuración anterior deja un ratro que puede seguirse y, con el software apropiado, también se puede recuperar alguna información.
Por esto, algunos programas especializados de creación de particiones, ofrecen, al borrar, la opción de hacer varias pasadas escribiendo ceros en el disco.
miguev a las 21:55 del 29 de Mayo de 2006.
Amazing!
¿Cuántas pasadas se necesitan para eliminar la posibilidad de ese rastreo?
¿Podrías dejar por aquí un par de enlaces para informarnos más acerca de cómo se hace ese rastreo?
Me intriga especialmente la parte teórica de cómo es esto físicamente posible.
¡Gracias por avisarme antes de deshacerme de mis discos!
Su a las 00:50 del 30 de Mayo de 2006.
¿”Mort”? ¿Tienes un ordenador que se llama “Mort”? ¿¡Y dices que no eres friki!?
Veti a las 01:27 del 30 de Mayo de 2006.
¿Y si lo tiras por el váter? Un váter grande, se entiende.
Ah, no que luego lo quieres vender.
Mira, tu ayuda me hubiera venido muy bien el pasado julio. Cuando intentaba ver pelis en el portátil, iban a saltos, así que se me ocurrió la feliz idea de defragmentar la unidad (una cosa que hacemos los güindouseros, no sé si los pingüinos tenéis el gusto). Cuando me di cuenta, el portátil se había apagado solo (recalentamiento por polvo en el interior) y los datos de mi HD se habían ido a hacer puñetas. Probé chorrocientos programas de recuperación de datos, tanto en mi portátil como en otros, y no hubo manera de recuperar nada porque el proceso no acababa nunca, y eso que lo dejé días enteros trabajando.
Al final, me tocó formatear y el disco volvió a la normalidad. Así perdí fotos irrecuperables, como la que me hice con el Maestro, entre otras.
Veti a las 01:29 del 30 de Mayo de 2006.
¿Seguro que lo de las banderitas lo tienes bien configurado? A mí me sale que estáis todos en China al conectarme sin proxy y en Corea del Sur con proxy.
No sé, si estáis tan cerca podríais visitar y tal.
miguev a las 10:33 del 30 de Mayo de 2006.
Vaya putada lo del portátil
Siento decirte que mis conocimientos en la materia no habrían llegado mucho más lejos de decirte “no lo toques hasta que no estés 100% seguro de lo que vas a hacer o mejor llévalo a un experto”.
Viene al caso la frase “Only wimps use tape backup: real men just upload their important stuff on FTP, and let the rest of the world mirror it”, de Linus Torvalds (creo).
Por cierto, lo del defragmentado lo explica muy bien Roberto Di Cosmo en Trampa en el ciberespacio
Y gracias por decir lo de las banderitas, porque seguro que están mal. Por lo que me cuentas deben estar saliendo según la dirección IP del visitante, no según la del comentario. Luego lo reviso.
miguev a las 13:30 del 30 de Mayo de 2006.
En efecto, las banderitas estaban mal.
La función que hace la conversión de IP a país no estaba recibiendo la IP del comentario y estaba tomando la del visitante en su lugar.
Gracias por hacérmelo notar
Diego a las 16:33 del 30 de Mayo de 2006.
Como bien comenta Jake, llenar el disco duro con ceros no es hoy por hoy una solucion suficiente para el borrado seguro de datos.
Una solucion mas aceptable viene a ser rellenar el disco duro con ceros, luego con valores aleatorio y de nuevo con ceros.
El departamente de defensa de los Estados Unidos opta por el estandar 5220.22-M que engloba 7 etapas de borrado de la informacion.
Algunos algoritmos como el Peter Gutman, alcanzan la barbarie de 35 rondas de reescritura del disco duro.
Es interesante destacar que DOD de EEUU estipula la destruccion fisica de los dispositivos de almacenamiento magnetico que contienen datos de alta confidencialidad.
En el portage de Gentoo nos encontramos con utilidades como:
* app-misc/wipe
Latest version available: 2.2.0
Latest version installed: 2.2.0
Size of downloaded files: 68 kB
Homepage: http://wipe.sourceforge.net/
Description: Secure file wiping utility based on Peter Gutman’s patterns
License: GPL-2
Saludines
miguev a las 17:00 del 30 de Mayo de 2006.
Damn interesting!
Gracias por arrojar luz sobre este asunto, ¡me viene de maravilla!
Veti a las 11:06 del 1 de Junio de 2006.
Muy interesante el artículo que me indicas, miguev.
No me sonaba haber visto nada para defragmentar en Ubuntu, así que entendí que a GNU/Linux no le hacía falta.
El Scandisk (Chkdsk, en el hiXoPuta) creo que sirve para recuperar clústeres con datos corruptos, porque hasta el día de hoy no me ha recuperado nada útil. Es como una utilidad de recuperación de archivos, sólo que no recupera archivos.
Veti a las 11:08 del 1 de Junio de 2006.
¿Esto no entiende código HTML?
miguev a las 15:27 del 1 de Junio de 2006.
Si te gustó el artículo aqui tienes algunos más
En efecto, el sistema de ficheros de Linux (Extended 3) no necesita defragmentado.
Esto es así por lo que explica en el artículo de Roberto Di Cosmo: vale más mantener el orden a diario que tratar de poner orden de vez en cuando.
Ya lo decía El Maestro: … el caos siempre vence al orden porque está mejor organizado.
Lo del código HTML es el mismo problema que las tildes, algún filtro está convirtiendo todo a su representación en HTML, incluidos los tags.
curiosisito.... a las 14:53 del 21 de Junio de 2006.
Hola…..que interesante lo que leí de lo de borrar toda la información completa…..me hubiera sido muy útil el año pasado..:’(…..pero me gustaría que postearan un link de un sitio de donde se pueda descargar un progrma de borrado total de archivos, una versión freeware….o crakeada please…..
Gracias
miguev a las 21:45 del 21 de Junio de 2006.
Pues no sé, supongo que buscas algo para windows y yo de eso no tengo ni idea
, pero seguro que el amigo Google te echa un cable, busca por “borrado seguro de disco duro”, “secure hard drive erasing” o algo así…
carlos a las 15:30 del 29 de Agosto de 2006.
hola me llamo carlos y no entiendo mucho de computacion quiero borrar todo en mi compu pero tiene un programa que se llama deep-freeze… y no tengo el codigo de desbloqueo si me podes ayudar te lo agradeceria mucho un saludo y gracias por tu tiempo
miguev a las 16:54 del 29 de Agosto de 2006.
Una forma fácil sería bajarte una distribución de GNU/Linux preparada para arrancar desde floppy o CD (un Live-CD) y operar el disco duro desde ella, así no habrá ningun programa en medio protegiendo el disco duro. Otra opción seria sacar el disco duro de ese ordenador, ponerlo en otro y NO arrancar desde él sino desde otro disco duro. En cualquier caso, mejor que preguntes en un foro donde haya mas gente que te pueda ayudar.
ka a las 14:58 del 19 de Marzo de 2007.
Señores…ningun disco se puede borrar por completo, utilizando las tecnicas de las matematicas,la unica forma de eliminar la data que queda; es aplicando un fuerte campo magnetico sobre el disco y por un lapso de 1 hora.
miguev a las 23:45 del 19 de Marzo de 2007.
Bueno… se me ocurren formas más creativas de asegurarme de que no se pueda leer la información, pero creo que la intención original era dejar el disco duro con la misma forma y aún funcionando
Max a las 20:15 del 6 de Diciembre de 2007.
¡GRACIAS! Te cuento que tengo un celular Sony Ericcson W200, el cual dejo de reconocer la Memory Stick desde hace como un mes.
Sin embargo, cuando conectaba el móbil al ordenador la PC si la detectaba. Corri el comando, con un bloque de 512, y boom
revivio.
Al parecer es un metodo para revivir memorias USB.
isaac a las 13:30 del 24 de Marzo de 2008.
Vaya pandilla madre mia… el del portatil no poder recuperar los datOs xD! me e encontrao miles de discos duros de la policia, de corres (trabajo en una deixaderia) todos formateados y se creen k es bastante un disco duro jamas puede formatearse al 100% siempre kdaran datos aunque lo numeracion binario este en 0 mas intentos que e probado no pueden ser… unicamente con linux puede consegir hasta el 90% del borrando (mas o menos) xD… y en recuperancion… lo mas faciL xD! incluso unHDD desmontado puede llegar a recuperarse con el material apropiado:D!