Recuperación de archivos borrados en linux y cómo convertir un sistema de archivos UFS de ext3 a ext2
Introducción
Asi que lo borraste y ahora lo quieres de vuelta? Seguro que no. Debe haber sido un error. Echarse para atrás no lo hacemos los machotes ni las mujeres güenonas.
Pasa que cuando te estas toda una tarde robándole a alguien su discografia completa de Groove Armada y pasas a llevar F7 en el midnight commander y que de puro capo no + tienes desconectado el “confirm before delete”, claro te dices: “cáspita, p q soy g”.
No era la primera vez que asi me reprendía.
Lo bueno de linux es que siempre puedes tener la seguridad de que algo se puede hacer, incluso con metidas de pata gloriosas.
Primero ve al sitio de estos cabros buenos pa’ la pega http://www.cgsecurity.org/wiki/TestDisk y obtén tu copia GRATUITA de “TestDisk & PhotoRec 6.10 (17 July 2008), Data Recovery”.
A la fecha de este artículo bajé la versión beta o sea: “TestDisk & PhotoRec 6.11-WIP, Data Recovery”. En la versión 6.10 no encontré la opción “undelete”. Ya te está gustando Ah?
Para hacerla corta aqui está el link del programa que usaremos http://www.cgsecurity.org/testdisk-6.11-WIP.linux26.tar.bz2. También hay una copia para un kernel 2.4.
Dentro de otras particularidades de este software está la que nos interesa:
# Undelete files from FAT, NTFS and ext2 filesystem
Asi es, “ext2 filesystem” y yo que tengo?
1 2 | cat /etc/fstab /dev/hda10 / ext3 etc... |
Claro, cuando instalé el sistema, astutamente pensé “3 es más que 2″ asi que usé ext3.
Aquí hay una buena explicación de por que no se pueden recucuperar archivos en ext3 http://lindesk.com/2009/01/recovering-deleted-data-linux-ext3-filesystem-use-trash-can/.
Al parecer es un sistema de archivos más apropiado para servidores en los cuales se quiere evitar al máximo la fragmentación de sus archivos. Cuando queda un espacio libre es inmediatamente ocupado por otros datos impidiendo así la recuperación de los anteriores que son sobrescritos. Por otro lado ext3 es más seguro en cuanto a la integridad de los datos, salvaguardándolos muy bien , por ejemplo, en un corte de energía. (En este caso siempre puedes usar e2fsck para chequear un sistema ext2 (desmontado)). Esta integridad la logra mediane un sistema de transacciones llamado “journaling”
Cuando transformas ext 2 a ext3 dices:
1 2 | # afina mi file system 2 agregándole journaling tune2fs -O +has_journal /dev/hda10 |
Eso es un sistema ext3, ext2 más transacciones (journaling.). Las transacciones son muy fáciles de entender y ya las conocerás si has usado tablas innodb en MySQL:
Por ejemplo, este blog no usa transacciones por que la importancia de su contenido no lo amerita, Un post se graba o no se graba. Si no se graba debido a alguna falla, puedes intentarlo mas tarde. En cambio cuando sacas plata de un cajero, estarias muy molesto si el banco registra el retiro, luego el sistema falla y tu no alcanzas ni a ver los billetes. Eso no ocurre bajo una transacción. Si el proceso falla en alguna parte, la base de datos mantiene el estado anterior a ella. El costo de esta seguridad es velocidad y espacio.
Así que teniendo claro esto del journaling es un muy buen comienzo para entender la diferencia entre ambos sistemas de archivos.
Todos estos trajines con el sistema de archivos son muy delicados. Hay que tener varias cosas en cuenta y atender todas las advertencias que el mismo sistema dá. Estudiar los comandos ante de usarlos con man command y leer buenas fuentes: ext2, ext3.
So, teniendo dos pegas atrasadas y una sed no menor (entiéndase sed de sábado por la tarde) me dispuse a cambiar de file system. Aunque no tenía mucha idea de que es eso definitivamente me tiraría a huelga si no podía escuchar a los morrocotudos GA. De puro porfiado no +.
Mientras le metia mano a las entrañas del SO me decia “la voy a c, la voy a c”. En alguna parte había leído clarito: “Use This Software At Your Own Risk”, que según traduce la experiencia significa “si Ud. mete la pata seguro que será hasta el cogote”.
Ya basta de plática. A lo nuestro:
Cómo convertir un sistema de archivos Unix (UFS) de ext3 a ext2
Antes de proceder infórmate más de como funcionan estos comandos en tu propio sistema.
1 2 | man tune2fs man e2fsck |
Según estos muchachos http://www.troubleshooters.com/linux/ext2toext3.htm#_three2two los pasos a seguir son:
1 2 3 4 5 | umount /dev/hda10 tune2fs -O ^has_journal /dev/hda10 e2fsck /dev/hda10 Edit /etc/fstab to change /dev/hda10 to mount type ext2 mount /dev/hda10 |
Excelente, también lo dicen los chicos de Red Hat (En todo caso estos pasos son genéricos).
No está de más agregar que como no puedes seguir parado si te sacas el piso a ti mismo, esto debes hacerlo desde otro dispositivo /dev que no sea el que vas a desmontar, obviamente.
Es decir:
1 2 | sudo umount /dev/hda10 umount: /: device is busy |
O sea, el sistema te dice: estoy ocupado ejecutando linux! dummy…
En cambio si tienes tus archivos en otra partición, esa sí la puedes desmontar sin nigún problema, como lo harías con tu pendrive, por ejemplo.
Quieres hacer algo emocionante!
Cambiar a nivel de ejecución 1: init1
Esto es como ir al superconciente de tu sistema operativo. En el nivel 1 sólo operan los sistemas básicos de linux y sólo atiende a un usuario y en forma aislada de otros computadores. Por esto no hay servicios de red ni se ejecutan programas en segundo plano (demonios). Puedes interactuar con él a través de la linea de comandos y sólo habiendo asumido previamente privilegios de root.
1 2 3 4 5 6 7 | # asumir privilegios de root en forma persistente (-i). # abandonas estos privilegios usando el comando exit sudo -i # antes de ejecutar init 1 ten presente que serán terminados todos # los procesos en niveles superiores a 1 como servidores y escritorio init 1 |
Entonces, ahora díle que desmonte su sistema de almacenamiento principal que en este caso nombramos como /dev/hda10.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | umount /dev/hda10 # lo hará limpiamente. # retirar journal (ext3) tune2fs -O ^has_journal /dev/hda10 # chequear file system # si todo va bien debe responder con "clean" e2fsck /dev/hda10 # edita /etc/fstab y cambia ext3 por ext2 para /dev/hda10 vi /etc/fstab # como estamos suponiendo que /dev/hda10 es tu partición # principal lo mejor será reiniciar /sbin/shutdown -r now |
En el código anterior cambia hda10 por tu dispositivo. Podrás identificarlo con cat /etc/fstab y no olvides editar /etc/fstab y cambiar ext3 por ext2. Y muy, muy importante, no olvides ejecutar también e2fsck /dev/hda10.
(luego continuamos, tengo que hacerle cariño al gato)
3 comentarios
RSS feed para comentarios en este post
TrackBack URL


RSS Feed
Recuperacion de archivos:
Se agradece de verdad, saludos
Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Recupera tus datos:
Muchas gracias por el tutorial!!
Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
NomikOS:
Veo que tu blog se dedica específicamente a la recuperación de archivos.
Si quieres hacer un apartado para linux, puedes basarte en este post para iniciarlo.
d [º_º]
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1