Recuperar particion EXT2 o EXT3 (Recuperar SuperBlock)

¿Cuantas veces nos cargamos una partición? Pues yo ya lo he hecho muchas veces, suerte que siempre consigo arreglarlas xD

Introducción
Esta vez, (todo por culpa de windows que por arte de birlibirloque se carga el MBR haciendo cualquier SO inarrancable ) intentado restaurar una copiar del MBR, por error, en vez de copiarla al inicio del disco, (donde esta mi MBR) la copie al principio de la partición 2 (hd0,1 ó sda2). Al principio el error, no parece tan grave, pero cuando ves que no puedes montar la partición de ninguna manera, te empiezas a mosquear ¬¬


Vamos al Grano

“Tranquilidad y buenos alimentos” como se suele decir, lo primero ante un fallo de estos, es no alterarse y no estropearlo mas, intentar arreglarlo precipitadamente nos puede llevar a intentar arreglarlo de alguna forma que solo lo estropeemos mas (o irreversible). Ante todo debemos empezar con un buen diagnostico (En este caso, observando la salida de mount+google hubieramos dado pronto con la solución, sin correr a coger el testdisk)
Una buena practica es hacer backups, así si no tienes datos irrecuperables, puedes directamente formatear y volver a empezar. Pero como yo no lo tenía, y tampoco sabía como arreglarlo, pues antes de estropearlo mas, nos hacemos un backup por ejemplo con clonezilla. Tiene una interfaz hecha con ncurses (intuyo) que es un poco liosa a mi parecer (o que la versión en castellano esta mal traducida) , pero si tenemos espacio en otra particion/disco en el mismo PC donde esta la ext3 en cuestión, pues podemos copiarla a un archivo como yo hice (25 archivos de 2 GB :D ), si no pues buscar otra forma de hacer backup. Esto es importante ya que en mi caso los datos no se había perdido, solo se había sobreescrito los 32 primeros KBytes de sda2, entonces hacer algo inapropiado sobre el disco podría empeorarlo.

Busqueda de los backup del superblock
Una vez hecho el backup (bueno, esto se puede hacer también antes del backup) con testdisk seleccionamos HD, tipo de tabla de particiones, le damos a “Advanced” seleccionamos la partición ext2/3 (supongo que con ext2 también vale, son fs identicos, solo que ext3 incluye journaling y ext2 no, y no me pregunteis que es que no lo se) y le damos a “Superblock”, esto buscara en la partición los “Superbloques” de backup que hay esparcidos por todo el disco, por si nos pasa esto xD.
Cuanto termine nos dará una tabla de números, que habrá que copiar para luego indicarle a fsck.ext3 donde puede haber un superbloque de repuesto.

Para saber mas de como funciona el sistema de ficheros ext2 puedes ver este PDF [111 Transparencias]
Apunta todos los “superblock” y el “blocksize” (con una vez que apuntes el blocksize es suficiente, ya que debería ser siempre el mismo) que nos hacen falta ahora despues.

Restaurar el superblock
Para restaurar el superblock, solo tienes que ejecutar algún live cd que tenga fsck (digo live cd, porque entiendo que si estas leyendo esto es que te has cargado el sistema de ficheros raiz, si no es así lo puedes hacer desde tu instalación normal de linux)
Una vez tengas una consola funcionando, ejecutamos fsck:
/sbin/fsck.ext3 -b [superblock] -B [blocksize] /dev/hda1
Donde [superblock] reemplazar por uno de los bloques que nos dio testdisk. Recomiendo uno alto, ya que si te ha pasado como en mi caso, es mas probable que se halla afectad un superblock del principio que del final. Donde [blocksize] el tamaño de cada bloque, normalmente 1024, 2048 o 4096.
Donde hda1 reemplazar por la particion a reparar.Ojo con esto, que por no fijarme bien en que unidad ponía me carge el sistema de archivos.
Fsck se pone a trabajar… nos empezara a sacar errores y nos preguntara que si queremos repararlos, le decimos que si a todo, y cuando termine el sistema de archivos en cuestión se podrá montar con normalidad.


Resumiendo
Para Recuperar el superblock necesitamos:
- TestDisk
- fsck (viene con e2fsprogs y con RIP liveCD)
Opcional
- Clonezilla (si queremos hacer backup)
- RIP liveCD (si no tenemos donde ejecutar testdisk ni fsck)

Procedimiento
- Halla los superbloques con testdisk (en Advanced)
- Restauralo con fsck: /sbin/fsck.ext3 -b [superblock] -B [blocksize] /dev/[partición]

Cosas a tener en cuenta
HACER BACKUP’S DE TODO

Como diagnosticar que le pasa a un disco
- Ver que dice mount
- Ver que dice fsck
- Ver que dice gpart (sin opciones, solo dispositivo) No tiene nada que ver con gparted.
- Ver que dice TestDisk, pero no escribir cambios, hasta que estemos seguros.
Tomar una decisión precipitada puede llevarnos a empeorarlo mas.
Usar mucho google, y si hace falta (como es mi caso) buscar información sobre como funciona el FileSystem y así poder averiguar que ha pasado.

- Home -