Mar
01
2009

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)

Escrito por NomikOS en Linux, March 1 - 2009 @ 14:24 hrs. | Tags: , ,
Hoy 1 lectores. Te agradecería que me dejaras un comentario. Gracias por tu visita. d [^_0]

3 comentarios

  • Recuperacion de archivos:

    Se agradece de verdad, saludos

    Firefox 3.5.1 Firefox 3.5.1 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
    Comment | July 18, 2009 @ 15:57
  • Recupera tus datos:

    Muchas gracias por el tutorial!!

    Firefox 3.5.1 Firefox 3.5.1 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
    Comment | July 18, 2009 @ 15:58
  • 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 [º_º]

    Firefox 3.5.1 Firefox 3.5.1 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
    Comment | August 3, 2009 @ 03:42

RSS feed para comentarios en este post

TrackBack URL

Deja un comentario

XHTML: Etiquetas permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress. Theme: TheBuckmaker. Modifications by NomikOS