| Recuperación de datos en GNU/Linux |
| Escrito por Martin Kenneth Lopez | |
| 02.04.2007 | |
![]() Nos centraremos en la recuperación de datos más no en la planificación de backups. Hay que tener presente que no siempre es posible lograr esto, en este post lo que se tratara de brindar es ciertos consejos, programas y técnicas que quizás podrán salvarles de pasar un mal rato o perder información valiosa como muchas veces me ha pasado a mi. La pérdida de información y de datos de la computadora se puede realizar de las siguientes maneras, no son las únicas pero son las más comunes: Daño Físico del disco duro, disket etc., este es el peor de los casos puesto que no hay nada que se pueda hacer ya que simplemente los dispositivos no responden y no queda nada por hacer, ningún software nos podrá ayudar en este caso. La ventaja del Linux en el caso de que los dispositivos no estén dañados en su totalidad es que permiten realizar múltiples pruebas de lectura de un fragmento dañado, que a veces es suficiente para recuperar incluso toda la información. Errores humanos (usuarios, admin.), acá entran los errores de borrado de datos accidentalmente, formateado (como me paso a mi una vez hace ya muchos años) o eliminación de una partición (como ocurre a veces a los que recién empiezan en Linux y borran la partición de Windows al momento de instalar su distro), este caso no es tan grabe ya que la perdida no es irreversible. Para desgracia de muchos el comando undelete en Linux no es permitido, esto solo se logra con el sistema de archivos FAT, pero esto no quiere decir que no podamos recuperar nuestros archivos… para nada, en Linux encontraremos otras herramientas que nos ayudaran independientemente del sistema de archivos. Otro aspecto que no pasa por alto es que casi siempre las tareas que podemos ejecutar las podemos hacer mas rápido por línea de comandos, pero esto no implica que no se comentan errores, la mayoría de principiantes creen que existe algún comando como el undelete pero como ya se explico anteriormente esto no es posible, en FAT es posible por el archivo no es borrado , aparte de la primera letra del nombre del archivo el resto esta intacto, todo hasta que no se sobrescrito, pero en Linux es totalmente distinta la situación, en Ext2 que es un sistema de archivos viejo se permite la recuperación de un archivo borrado, a pesar que el nombre del archivo es eliminado pero se mantiene la información acerca del propietario, atributos y tamaño y la fecha de eliminación. Si tenemos la fecha podemos recurrir a alguna herramienta como “e2undel” la cual viene en casi todas las distribuciones. Ejemplo del comando a continuación: # e2undel –d /dev/hda1 –s /tmp/ -a Escanea la partición hda1, y preguntara por: el propietario del archivo borrado, la hora del borrado y al final el numero inode del archivo que se quiere recuperar. Lamentablemente en Ext3 no permite esto ya que su inode se borra simultáneamente con el. Del mismo modo ocurre con xfs y Reiserfs. Truco, magia informática (No se recomienda hacer :P ) Con este truco hay posibilidades de recuperar los datos perdidos, si se desconecta la energía del sistema inmediatamente tras la perdida (no desmonta el disco adecuadamente). Entonces se puede poner en marcha el sistema desde algún livecd y probar la instrucción # reiserfsck – rebuild-tree –s –l /root/recovery.log /dev/hda1 Pero esta acción podría dañar el disco duro por lo que no se recomienda hacer a menos que sea el último recurso. Técnicas para recuperar los datos: En el caso de CD’s diskets dañados, mayormente nos daremos cuenta por que recibiéremos mensajes tales como: Buffer I/O error on device hdb, ide: failed opcode was: unknow, Driveready SeekComplete Error por consola o por dmesg. Estos mensajes traen consigo un gran retraso en las operaciones de la computadora, en estos casos es fastidioso por que a veces no se puede desmontar los dispositivos ni nada que hacer, solo esperar, pero se puede usar el siguiente comando: # umount –lf /dev/cdrom; eject /dev/cdrom Ahora veremos una pequeña introducción al uso del “dd” un comando muy útil. # dd if=/dev/cdrom of=/var/tmp/cd.img Con esta instrucción lo que se esta haciendo es copiar todo el contenido del CD que actualmente esta en la lectora y se copia al disco duro todo el contenido al archivo cd.img # dd if=/dev/fd0 of=/var/tmp/floppy.img Con esta instrucción lo que se esta haciendo es copiar todo el contenido del diskete que actualmente esta en la disketera y se copia al disco duro todo el contenido al archivo floppy.img # dd if=/dev/sda1 of=/var/tmp/usb.img Con esta instrucción lo que se esta haciendo es copiar todo el contenido de la memoria USB que actualmente esta conectada y se copia al disco duro todo el contenido al archivo usb.img Pero aquí viene el detalle la instrucción “dd” trabaja de maravilla y es muy eficiente pero solo si los dispositivos están en perfectas condiciones, es necesario tan solo un error en la lectura o en el dispositivo para que la operación se vea interrumpida. Como “dd” no nos sirve para leer de dispositivos dañados tendremos que buscar otras herramientas como el dd_rescue, GNU Ddrescue, RecoverDM entre otros. dd_rescue Este es uno de los programas mas antiguos y el cual se puede encontrar en muchas distribuciones de GNU/Linux, su uso es por líneas de comandos como la del comando “dd” ahora la diferencia esta en que el dd se interrumpía con algún error de lectura o del dispositivo en este caso no pasara esto ya que el bloque dañado lo leerá un numero determinado de veces y continuara con el siguiente, también brinda la ventaja de que podemos ejecutarlo varias veces sobre la misma imagen y no empezara de cero sino que tratara de completar la misma, a continuación un ejemplo: # dd_rescue –e 5 –l /tmp/que_paso.log –r –d /dev/hdb /var/tmp/cd.img Se lee el contenido de /dev/hdb (DVD) y se escribe en cd.img –e 5 es el parámetro que indica el numero de veces que se lecturas reiteradas –l luego esta el archivo en el cual se guardan los registros de la lectura –r es para el sentido de la lectura hacia atrás o hacia delante El defecto del dd_rescue es que puede tomar mucho tiempo en las lecturas, primero dependiendo de cuantas veces queramos que haga la lectura reiterada, y aparte del tamaño del medio a leer, es decir hacer las pruebas para recuperar a veces se tienen que hacer varias veces y si el tamaño es grande también será grande el tiempo que transcurrirá, a veces luego de la primera lectura se podría montar la imagen para ver si están los datos que se quieren. Myrescue Este programa lo que hace es mejorar el dd_rescue y saca su propias solución, como por ejemplo leer los datos de las regiones que están bien y luego proceder a leer los sectores con errores. DD_rhelp Este programa por ejemplo prueba de modo mas complejo, diversos métodos de lectura, ahorrando así tiempo y esfuerzo del usuario. DDrescue Todas las funciones anteriores y mas las posee ddrescue. Este software es una buena alternativa para el dd_rescue. Una de sus mayores ventajas es la sencillez que tiene para usar. Ddrescue viene con una serie de comandos que los podemos sacar desde consola escribiendo el siguiente comando # ddrescue --help Pero con este ejemplo será más que suficiente para ver como funciona: # ddrescue /dev/hdb /var/tmp/work.img /var/tmp/work.log Con este comando lo que se logra es primero leer los sectores que están bien copiándolos a la imagen work.img y luego procederá a leer los sectores fallados por medio de diferentes métodos de lectura, claro que esto puede tomar mucho tiempo por lo cual si consideramos que ha sido suficiente podemos para la operación apretando “ctrl. + C” y luego tendremos todos los datos que fueron recuperados en la imagen work.img. También se podría limitar el tiempo de lectura para sectores fallados por medio de la opción –e 10 como en el dd_rescue. Recoverdm Este programa por ejemplo tiene la característica que mientras hace la lectura del CD, lo hace a la menor velocidad posible, esta táctica logra ser útil al momento de leer sectores fallados. Un ejemplo de su uso se puede ver: # /usr/local/bin/recoverdm –t 30 -o /var/tmp/disco.img –n l –r 6 -i /dev/hdc -t 30 ajusta el tipo de unidad para DVD -o el archivo destino -i el dispositivo a leer -n el numero de repeticiones para la lectura Recuerden siempre que ninguna técnica de recuperación, magia macumba o chamaneria u ritual informático se compara con una buena política de seguridad la cual minimizara al máximo la pérdida de información. Así es que si tienen información importante mejor empiecen a diseñar su política de seguridad por experiencia lo digo. Referencias y Links de Interés: dd_rescue (http://www.garloff.de/kurt/linux/ddrescue/) myrescue (http://myrescue.sourceforge.net) dd_rhelp (http://www.kalysto.org/utilities/dd_rhelp) ddrescue (http://www.gnu.org/software/ddrescue/) recoverdm (http://www.vanheusen.com/recoverdm/) RIP Linux (http://www.tux.org/pub/people/kent-robotti/looplinux/rip) Linux + (http://www.lpmagazine.org/es) |
No está autorizado a dejar comentarios - Por favor, ingrese como usuario.


