Oh no! bad geometry: block count exceeds size of device

A quien no le ha salido este error?? Nadie?? Bueno, a alguien seguro que sí. La verdad es que es un error muy chungo que te puede hacer perder toda una partición a pesar de saber que los datos están intactos.

Primero, ¿Qué quiere decir este fallo? Pues básicamente que la partición dice que tiene un tamaño superior del que realmente tiene y en cuando intentamos montar esa partición linux detecta un problema y dice “soo, que aquí algo no cuadra”.
Bueno, más concretamente dice

mount: wrong fs type, bad option, bad superblock on /dev/sda5,
missing codepage or helper program, or other error
In some cases useful info is found in syslog – try
dmesg | tail  or so

Este error, si te ha ocurrido, lo más probable es que haya sido provocado al redimensionar

o mover una partición y la tarea no se realizó con éxito. Leyendo por internet he visto que
bastante gente le ha pasado usando como sistema de ficheros ext4 pero en ningún lado daban
una solución diferente de “recupera un backup”.
Para una empresa es imprescindible tener backups de todo pues es la manera más rápida y segura
de recuperar información perdida pero no todos tenemos ni los conocimientos ni recursos para tener
backups de todo.
Si no tienes backup de esa partición te voy a ayudar a recuperar los datos.

Como dije antes, la partición no se puede montar por incoherencias en el sistema de ficheros pero
todos los archivos están ahí. Vamos usar una grandiosa herramienta para sistemas de ficheros ext
llamada e2fsprogs
Repito, esta herramienta es muy muy potente aunque nosotros nos vamos a limitar a usarla para
bucear en el sistema de ficheros corrupto. No hace falta instalar nada, todos los linuxes lo traen de
serie (he dicho alguna vez lo maravilloso que es linux?). En mi caso se me rompió la partición home
con bastantes cosas que me costaría recomponer (si hubiera sido la del sistema probablemente me
hubiera limitado a volver a crear la partición y reinstalar el sistema) y use una maravillosa distribución
live llamada systemrescuecd que desde mi punto de vista es una herramienta imprescindible a tener en
el cajon.

Una vez el sistema arrancado entramos en un terminal como administrador ejecutamos
debugfs /dev/sda5 (/dev/sda5 era mi partición pero ahí tiene que poner la tuya).
Si ha ido bien la cosa nos habrá aparecido un prompt para meter comandos. Puedes probar con ls para
listar y ver está listando bien los directorios. En mi caso quería copiar todo el contenido del directorio
“alvaro” así que usé el siguiente comando:

rdump alvaro /saca/alvaro

Explico el comando:
rdump (dentro del prompt de debugfs) hace un volcado recursivo. Si solo usamos dump lo que haría es volcar un solo
archivo pero si quieres copiar un directorio hay que usar rdump
alvaro es la carpeta de la particion corrupta (la que aparece haciendo ls dentro de debugfs)
/saca/alvaro es el directorio a donde se van a volcar los datos. En mi caso monté un disco duro de 500 gigas. Recuerda tener
espacio suficiente libre en el destino!.

Después de un ratito (dependiendo de lo que tenga que copiar) verás que ha terminado. Comprueba que te ha recuperado todo.
Yo hice un du -h /saca/alvaro para ver que ocupaba los 28GB que ocupaba mi home. Navega un poco por los directorios recién
copiados y si todo está correcto pues borras la partición (con gparted por ejemplo) la vuleves a crear y copias los archivos en esa
partición. En mi caso como era el directorio home de mi usuario cambié el propietario (ya que era root) a alvaro con chown -R alvaro.
Ahora al iniciar el sistema todo debería ir perfectamente.

Resumiendo:
1 – debugfs particion
2 – rdump directorioDeParticion directorioDestino

Y en directorioDestino tendremos los archivos a salvo.

Vemos que algo en principio tan catastrófico se soluciona tan fácil. Que cosas tiene la vida.
Un saludo!

You may also like...

5 Responses

  1. David dice:

    Intenté hacerlo, pero, al parecer, no se puede copiar los directorios que tienen tildes en sus nombres… cómo podría solucionarlo?

  2. Maxpowel dice:

    Bueno, con sólo esa información no te puedo decir mucho. El tema de las tildes depende del sistema de condifaciones de carácteres. El problema se da cuando son diferentes. En este caso, es diferente el que se usa para escribir que para mostrar.

    En principio esto sólo ocasiona problema cuando tratas de escribirlo a mano (por teclado). Si le dejas al ordenador trabajar con ello el solito no suele dar problema. El ejemplo más claro es cuando accedemos a una partición ntfs donde windows usa una codificación diferente. Los nombres de archivos y directorios con tildes se muestran como carácteres extraños. Si intentamos escribirlos a mano va a fallar pero si pulsamos el tabulador para autocompletar funciona perfecto.

    Con esto quiero decir que lo más rápido y sencillo que se me ocurre es que hagas un rdump del directorio que está por encima del directorio con tildes en el nombre.
    Sí, probablemente copies más archivos de los necesarios pero luego borras los sobrantes y punto. Después con el “truquito” que comenté antes de usar el tabulador puedes cambiar el nombre del directorio por uno con el que puedas trabajar.

  3. JoseManuel dice:

    Joder, te estas haciendo un Capo!

  4. Elias dice:

    Hola Maxpowel,

    Cuando ejecuto el comando:

    debugfs

    Me sale este mensaje: Can’t read an inode bitmap while reading inode bitmap.

    Luego de esto me devuelve el prompt pero no me muestra nada cuando escribo un: ls

    me dice: ks: Filesystem not open

    A que crees que se deba?

  5. Edisson dice:

    Increible, me salvaste el dia.

    Linux!!!!!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *