Reparar un disco duro o una memoria usb en Ubuntu

Siguiendo donde lo dejé en el artículo anterior, Comprobar un disco duro en Ubuntu, ahora le tocaba a la reparación del disco duro, tal y como sugirió Senpai.

Ahora bien, quiero aclarar que lo que vamos a hacer es marcar los bloques defectuosos como utilizados, y formatear el resto de la unidad, perdiendo capacidad, evidentemente. Quiero decir, que no se trata de la panacea, ni la solución universal, se trata de un proceso para intentar salvar lo que se pueda, y dependiendo del porcentaje de sectores defectuosos, a lo mejor, vale la pena replantearse el asunto y desprenderse de esa memoria usb o de ese dusco duro (siempre puedes hacer un pequeño museo de los horrores, aunque a lo mejor se llamaría de los errores).

Llegados a este punto, indicar que el proceso es largo, dependiendo del tamaño del disco duro o de la memoria USB, así que vale la pena que planifiques cuando vas a hacer el trabajo.

Para este artículo, he utilizado un disco duro externo conectado por USB con formato ext4 de 160 Gb y una memoria USB de 1 GB con formato fat32. Cuando estaba redactando este artículo, la situación del disco duro de 160 GB era la siguiente:

0006_atareao@zorita: -home-atareao

El proceso se llevó unas cuantas horas, no puedo asegurar cuantas fueran, porque lo dejé por la noche en marcha y al retomarlo por la mañana la situación era la siguiente:

0007_atareao@zorita: -home-atareao

Vamos de los 156.290.903 bloques 155.707.224 estaban dañados, vamos que el disco duro está completamente destrozado. No se como funciona.

Es por esta razón por la que retomé el artículo con la memoria USB, con la esperanza de que no estuviera en tan lamentable estado. Y menos mal que no fué así, en este caso la situación fue la siguiente:

0023_atareao@zorita: -home-atareao

En este caso, la situación no es tan dramática estamos en 13.703 bloques de un total de 1.007.615, algo mas de 1%.

El siguiente paso es formatear la unidad pasando como argumento el listado de bloques dañados:

0020_atareao@zorita: -home-atareao

Dada mi naturaleza desconfiada, una vez realizada formateado, he vuelto a buscar los bloques dañados, para comprobar que el resultado es el mismo:

0021_atareao@zorita: -home-atareao

Efectivamente el número de bloques dañados es el mismo, pero por he querido además utilizar Meld, para comprobar que los bloques eran los mismos (desconfiado que es uno):

0024_badblocks_1GB01.txt : badblocks_1GB02.txt - Meld

Por último, podemos ver queda nuestra memoria USB en GParted:

0022_ROOT: -dev-sdh - GParted

Donde aparecen usados 15.75 MB, que corresponden mas o menos con los bloques dañados. Si no le hubieramos pasado los bloques dañados al realizar el formateo, el resultado hubiera sido este:

0019_ROOT: -dev-sdh - GParted

Donde solo aparecen como usados 1.94 MB. Puedes ver un resumen de los pasos a seguir a continuación…

Indicaciones

Buscando bloques defectuosos

Lo primero es localizar los bloques dañados de cada una de las particiones. Con la siguiente opción hacemos una búsqueda utilizando el modo de lectura y escritura no destructivo (opción -n), mostrando el progreso (-s) y los bloques dañados los vuelca en «badblocks_1GB01.txt»

sudo badblocks -n -s -v /dev/sdh1 -o badblocks_1GB01.txt

Si quisieramos hacer una comprobación de solo lectura las opciones a utilizar serían:

sudo badblocks -s -v /dev/sdh1 -o badblocks_1GB01.txt

y para hacer una de lectura y escritura, pero donde se borra toda la infomación de tu partición, las opciones serían:

sudo badblocks -w -s -v /dev/sdh1 -o badblocks_1GB01.txt

Formatear la unidad

Tienes que pasar el listado de bloques obtenidos en el paso anterior, para ello el comando a emplear para formatear en FAT32 es:

sudo mkdosfs -F32 -v -n "1GB" -l badblocks_1GB02.txt /dev/sdh1

 

Más información | RevistaLinux.net, introWiki

Más información | Ubuntu – badblocks, Ubuntu – mkfs

12 comentarios en “Reparar un disco duro o una memoria usb en Ubuntu

  1. zonadart hace 11 años

    Si en el proceso con un pendrive nos sale este error con todos los bloques:

    badblocks: Error Entrada/Salida durante escritura de los datos de prueba

    ¿Qué solución podríamos aplicar…?. Gracias

  2. Ex Calibur hace 10 años

    como ago para iniciar  Gnome Disk Utility en modo administrador?

  3. Ex Calibur hace 10 años

    amigo no entiendo muy bien lo que esplicas, te cuento que tengo un problema similar con mi disco duro, es un disco sata de 160 gb, y esta dañado, solo me permite instalar el so ubuntu, yo necesito saber como solucionar mi problema, si podes ayudame que lo necesito urgente.

    gracias, abrazos 

  4. Rafael hace 10 años

    Me parece genial tu blog, aunque como crítica constructiva …. las capturas de imágenes que incluyen texto (sobre todo terminales) están en un formato JPG tan comprimido que las hace ilegibles. Podrías ponerlas en PNG a 8 bits (para qué más colores) o bien subirles la calidad a los JPG, aunque me temo que lo mismo usas algún concector (vaya, si, «plugin) de WordPress que te desbarata tu buen trabajo con las imágenes.

    Un saludo

    1. El atareao hace 10 años

      He estado haciendo las capturas con Shutter con una resolución muy mala. Esto lo he cambiado hace unas semanas, espero que ahora lo veas mejor.

      Un saludo y gracias por la crítica que siempre es bien considerada

  5. Luis Chavez hace 10 años

    Hola, hice lo que dices en modo de lectura y escritura para la unidad USB, PERO ME LLENÓ EL DISCO DURO Y ME IMPIDE EL ACCESO A INTERNET.
    Me ha aumentado como 1 GB y no encuentro con qué. Pensé que fuera algun virus nuevo para Linux que descargara basura de Internet, así que quité el cable de Internet. pero continuaba a llenarse. Ahora no  consigo restablecer el acceso.
    Lo que sí: a la segunda vez que encendí la PC se liberaron más de 300 MB (no sé como). Pero de todas maneras se me ha llenado no sé con qué.

  6. C Vera Gz hace 10 años

    ¿Cómo le doy el formato en Ext4 usando la información de los bloques dañados?

  7. Manel 92 hace 9 años

    Hace mucho de este post, pero… he de decir que los comandos que usas, el primero hace la salida a un archivo de texto, y al  formatear lee de otro disntinto, (la diferencia es ese1 final que es un 2 después…xD)
    Un fallo tonto de escritura, pero si no te das cuenta… pues los novatos no sabrán seguir.

    Un saludo ^^

  8. Ricardo hace 9 años

    Como sería el comando para formatear a NTFS pasandole el archivo de bloques dañados como parámetro?

  9. Luis Emilio hace 5 años

    ¿Cómo le doy el formato Ext4 usando la información de los bloques dañados?

    1. El atareao hace 5 años

      Hola Luis Emilio,

      La orden a ejecutar es la siguiente,

      mkfs.ext4 -v -l badblocks_1GB02.txt -L LABEL /dev/sdh

      donde:

      -v modo verbose
      -l el archivo con los bloques dañados
      -L La etiqueta

      Un saludo

      1. Luis Emilio hace 5 años

        Gracias por responder. Está excelente el artículo me fue muy útil.

Deja una respuesta

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