Reparar sectores y recuperar un disco duro (HDD) en Linux

70
127942

De Discos Duros (o HDDs) hemos hablado ya aquí en DesdeLinux, les hemos mostrado guías o tutoriales sobre dd (aplicación en terminal muy útil o desastrosa, depende cómo se use jeje) y más, esta vez les hablaré sobre cómo podemos recuperar o reparar esos HDDs que tenemos con problemas en casa, que tenemos “desechados” en una gaveta o ya olvidamos en alguna caja 😉

btrfs


Si algún disco duro tiene sectores defectuosos podemos repararlos con la herramienta badblocks, lo primero será saber cuál es el disco duro que deseamos reparar (/dev/sdb … /dev/sdc … etc), para ello pongamos lo siguiente en una terminal:

sudo fdisk -l

Esto nos mostrará a /dev/sda, su tamaño en GBs y sus particiones, igual a /dev/sdb si existe, y así sdc y demás en dependencia de la cantidad de dispositivos de almacenamiento que tengan en su ordenador.

Supongamos que el disco duro en cuestión es uno externo y es /dev/sdb, entonces el comando para empezar a detectar y reparar los sectores dañados sería:

El disco duro NO puede estar montado, bajo ninguna circunstancia puede estar montada una partición del disco duro en el cual van a trabajar!!

badblocks -s -v -n -f /dev/sdb

  • -s : indica que se mostrará el proceso con por cientos
  • -v : modo verbose, lo cual significa que nos mostrará el número de errores
  • -n : indica que se intentará usar un modo no destructivo, o sea, que se intentarán recuperar esos sectores pero también la información que estaba en ellos
  • -f : fuerza la lectura y escritura en dispositivos que estén montados. Normalmente si el HDD estuviera montado badblocks no revisaría los sectores que se estén usando, pero, como ya les advertí y aconsejé que NO pueden tener el disco duro montado, usaremos el parámetro -f para forzar la recuperación de todos los sectores posibles

Demorará bastante, y repito, bastante. Fácilmente podría durar horas o días en dependencia del tamaño del disco duro, de qué tan dañado esté, de la velocidad de su ordenador, etc. Por lo que les recomiendo dejar el ordenador ahí tranquilo, sin moverlo durante el tiempo necesario, eso y muuuucha paciencia 😉

¿hay alguna herramienta específica para ext2, ext3 o ext4?

A decir verdad sí que la hay, se puede usar e2fsck, igual deberán saber cuál partición es la que desean revisar, supongamos que es /dev/sdb1, sería entonces:

e2fsck -p -v -y /dev/sdb1

  • -p : indica que se intenten reparar automáticamente los daños encontrados
  • -v : modo verbose, o sea, que nos muestre en pantalla los errores
  • -y : responderá Sí a todas las preguntas como ¿desea recuperar X sector?, para hacer el proceso de veras automático

 Fin!

Bueno nada más que agregar, antes yo usaba HirensBootCD, pero creo que esta opción ya me evitará bootear desde otro OS. También compré un disco duro externo 1tb en esta web que uso para guardar los archivos importantes, o lo hago en la nube.

70 COMENTARIOS

  1. Había algo de un modo de recuperación “destructivo”.

    Esto es útil cuando queremos que el S.O. marque esos sectores dañados como defectuosos para que no sean usados siempre que no nos importe perder la información que se encuentre grabada. Puede ser que tengamos dañada una partición Swap, un disco del que tengamos copia de seguridad o cosas así.

    Se supone que es más eficáz localizando zonas defectuosas que el modo NO destructivo, de ahí su utilidad pero me temo que hace tanto que no he tenido que usar esto que ya no recuerdo como se hacía.

      • CUIDADO: Ten en cuenta que el modo destructivo borra todos los datos que haya en la unidad de disco. Es por eso que se llama así, lo único es que dectecta mejor los sectores defectuosos y se marcan para que no vuelvan a ser utilizados.

        No recuerdo muy bien como era amigo pero creo que es badblocks -wsv /dev/sda1 (O la partición que sea) Te repito que la puedes liar.

        No hace falta ningún CD almenos que quieras ejecutarlo sobre la partición raiz y no te importe reinstalarlo todo de nuevo.

        Si son muchos los sectores defectuosos de tu disco lo mejor es que compres otro ya que seguramente te iran apareciendo más al poco tiempo.

      • La información se destruye porque el comando va escribiendo información en cada sector del disco y luego “lee” si esos datos se han grabado bien.

        Como escribe todo el disco duro se pierde toda la información, mientras que de la otra forma sólo se hacen pruebas de lectura.

  2. Una pregunta, se puede hacer el Test del disco duro en el escritorio gráfico montado? . Hace días que no anda las PESTAÑAS de esta pagina al momento de hacer clic en foros u otras pestañas, muy raro…muy raro, sera que solo a mi me han censurado por algo que no les gusto?, a propósito nunca eh dicho nada malo.

    • No, no es recomendable. Lo mejor es (si se trata del único HDD de tu PC) bootear por un LiveCD y ahí hacer el test.

      Sobre las pestañas, nah nadie te baneó amigo, ¿cómo crees? 😀 … fue un error mío en la ruta a unos archivos, por eso a nadie (ni a mí) me funcionaban, ya está corregido, Ctrl+F5 para que refresques el caché y listo.

    • En teoría sirve para dispositivos como pendrive igual, pero, al hardware ser diferente… bueno, no estoy seguro si arreglará en realidad el dispositivo o no.

      Sobre los formatos, FAT, NTFS y EXT son los que conozco.

    • badblocks sirve tanto para pendrives como para discos duros, pero no te reparará una memoria flash que este degradada, ya que es un daño físico no reparable.

    • Intentaré explicarlo simple y breve 🙂

      Cuando uno compra un HDD de (por ejemplo) 500GB, vemos que en realidad podemos usar (por ejemplo) 468GB, y pensamos que nos han robado los otros GBs que nos faltan.

      La verdad es que no es así, SMART es un “algo” (sistema, etc) que guarda una parte del HDD y nos deja la más grande para nosotros, luego, cuando algún sector en la sección grande sufre daños, SMART nos cambia ese defectuoso por uno nuevo, limpio en la otra parte del HDD, la que está “oculta” o “desaparecida”.

      Cuando tenemos problemas con el SMART, la gran mayoría de las veces significa que ya SMART no tiene más sectores limpios o no-corruptos en su espacio reservado para ello, o sea, no puede cambiar uno con problemas por uno sin ellos como antes había hecho.

      ¿este comando nos soluciona la vida?

      Tal vez, si corrige suficientes sectores entonces SMART no los detectará como dañados y (tal vez) no intente reemplazarlos (y muestre error al no poder).

      Disculpa si lo compliqué demasiado, no es un tema super simple de explicar 🙂

      • En el caso del sistema de archivos NTFS, el sistema SMART antes se usaba de forma indiscriminada en Windows XP, haciendo que se fragmentaran varios archivos hasta los componentes del kernel en sí.

        A partir de Windows Vista, como que ya le han bajado la exigencia al sistema de archivos NTFS, y desde Windows 8.1, se ha de contar para los usuarios finales el sistema de archivos ReFS (no ReiserFS).

  3. Badblocks, TestDisks y Smartmontools cuantas veces me han salvado la vida estas tres herramientas, especialmente Badblocks y TestDisk, buen tuto @KZKZ

  4. Estos programas me han salvado la vida alguna vez para recuperar datos de mis viejos HDD, aunque normalmente me suelen fallar mecánicamente y toca meterlos al congelador.

  5. disculpa mi ignorancia, pero a que te refieres con “El disco duro NO puede estar montado” y si estuviese montado como hago para desmontarlo.

    Gracias de antemano por la respuesta que me puedas dar.

    • Revisa si en /media/ ó en /run/media/ está una carpeta con el nombre del HDD y si al entrar a ella, entras al HDD.

      Si puedes hacer eso, entonces está montado.

      Para desmontarlo, depende el escritorio que tengas (Gnome, KDE, etc). Generalmente desde el mismo Explorador de Archivos tienes un ícono en la barra lateral que te permite desmontarlo o expulsarlo.

  6. Graciñas por el tuto. Me resultará muy útil, pues en mi curro tengo una pila de discos duros medio tocados que podré sacarles algún rendimiento. Una pregunta, ¿los sectores que no puede recuperar que hace con ellos?¿los aparta o los integra?

  7. Buen articulo , siempre me ha gustado todo lo más cercano al hard. Me gustaría saber que diferencia tiene con los programa específicos de los fabricantes de los propios hdd. Una vez arrancas desde ellos te ofrecen un abanico de posibilidades de recuperacion , incluso un formateo a bajo nivel si es preciso
    Y al ser específicos de la marca del hdd lo recertifican tras recuperar todo lo posible.

  8. Genial articulo. En estas ultimas semanas que han pasado, he tenido que pelearme con dos disco de 1TB, con formato avanzado cada uno y bueno ambos con sus respectivos sectores defectuosos.

    Probé un poco el badblocks, pero me di cuenta que tardaba demasiado y no tenia mucho tiempo disponible para que lo haga completamente, ya que en mi país, sufrimos de problemas de corte de energía.

    Pues lo que hice, fue usar al todopoderoso dios de los bits, al señor “dd”.

    Con esta orden de comandos, fue posible la magia.
    dd if=/dev/zero |pv| dd of=/dev/sdX bs=100M
    El pv, es para que me mostrara por donde iba el rellenado de ceros en el disco.

    Gracias a eso, pude darme cuenta en que cantidad de gigabytes fallaba el disco, y haciendo uso del comando fdisk, rehíce las tablas de particiones.

    En uno de los disco, tuvo una perdida máxima de 9 gigas, algo despreciable para un disco de 1TB.

    En la siguiente imagen, se puede ver la estructura final del disco, y funcionando perfectamente, hasta ahora.

    http://i.imgur.com/9uvFhsb.png

    Saludos.

  9. Muy interesante el articulo y sobre todo remarcar lo que no debemos hacer
    “El disco duro no debe estar montado bajo ninguna circunstancia para poder trabajar sobre él”

  10. Excelente información! Me gustaría preguntarte qué tipo de formateo es el más adecuado si lo que quieres es almacenar archivos de gran tamaño en un disco duro. Tengo entendido que es el ext4 pero no estoy muy seguro.

    Gracias

  11. Hola, tengo una duda.
    Actualmente en mi computadora tengo 3 particiones en el disco duro, una con Windows, otra con Ubuntu 14.10 y otra para almacenar la información que necesito tener a la mano en ambos sistemas.
    El problema es que desde hace unos días al iniciar Ubuntu me sale un mensaje de que mi disco está dañado y me salen algunas opciones a elegir, entre ellas la de reparar el disco duro.
    Mi duda es ¿Si le doy en reparar pierdo mis datos de Ubuntu? o peor aún ¿Qué pasa con mis otras 2 particiones?

  12. Hola .. Gracias por esta info tan valiosa!

    Pero tengo una duda. ¿qué pasa si linux no reconoce mi disco duro?, es decir; tengo un disco duro de 320 GB, y he insertado varios Live CD de Linux, esto para usar el gparted o por medio de linea de comandos formatear el disco y darle algo de utilidad, sin embargo, ningun live CD me ha reconocido el disco duro, inclusive con el comando que pones arriba ((sudo fdisk -l) lo unico que hace actualemente es reconocer un USB de 16 GB que es donde tengo instalado un debian con sus respectivas particiones, pero del disco duro de 320 GB nada… ¿que puedo hacer?, ojalá pudieras ayudarme, de lo contrario lo enviaré directo a la basura.

    ¡Gracias!

  13. He probado intentar recuperar el disco con los comandos que me dicen pero no he conseguido recuperar los datos. Si esto no funciona, que mas puedo hacer? Muchas gracias

  14. Tengo montado el disco duro en mi lap. En una memoria USB monte Ubuntu, donde estoy tratando de hacer todo el proceso, los pasos y comandos son los mismos en mi situacion?

    • Los pasos son los mismos pero debes tener en cuenta que las rutas son distintas, ya que tu disco duro puede ser reconocido con un dev distintos, deberás ajustar eso en su momento.

  15. puede haber temas en las que no concuerdo con ustedes, pero sepan esto , siempre me estan ayudando cuando los necesito!!!!! gracias por esta info MUY UTIL!!!, Y nuevamente GRACIAS!!

  16. hola buen aporte el tuyo. tengo in pequeño pero gran problema use la variante (-s -v -n -f -w) a las 27 horas cuando estaba probando el patron (A055) se me apago el pc.

    ahora perdi todas las particiones estoy con el testdick pero demomneto no hay suerte.
    habia una particion que si andaba pero al apagarse el pc corto el badblocks y me quede sin ella. tienes alguna idea de como poder solucionar esto?

    es un disco chikito de 80gb, anteriormente me estaba dando problemas con el smart, hasta que se borraron archivos de inicio de sistema y me puse con el badblocks. bueno si alguien sabe llevo 3 dias con este problema no se por donde seguir gracias chau

  17. Saludos, he tratado de recuperar archivos de un disco duro de 640 gb, era la unidad c: de una lap, trabajaba con win7, se daño el disco (ignoro el como, no es mío), al conectarlo como externo, en windows a veces lo detecta y a veces no, pero no me permite acceder a el, lo conecte a una pc con linux, lo detecta a veces y a veces no, la intensión es tratar de recuperar varias carpetas de datos (principalmente foto y vídeo de un fotógrafo), ya recupere 56 gb de 280 gb que son las relevantes, pero ya no puedo acceder a las carpetas que deseo recuperar, si inserto el disco, voy abriendo carpeta por carpeta y al llegar a una principal me dice:

    No se pudo mostrar todo el contenido de «Fotos xx»: Error al conseguir información para el archivo «/media/pc/E83E5A7F3E5A472A/Documents and Settings/F/Documents/Fotos xx/xx»: Error de entrada/salida

    Intente utilizar badblocks pero me dice:

    user@equipo:~$ badblocks -s -v -n -f /dev/sdc
    badblocks: Permiso denegado mientras se intentaba determinar el tamaño del dispositivo

    ¿Qué puedo hacer para recuperar esos datos?

    Agradezco de antemano su atención.

  18. Saludos bro. Muy buena infornacion tenia un rato buscando como reparar un disco duro 20 gb con imagenes y todo muy bien solo k al darle para iniciar la reparacion me sale “permiso denegado mientras se determinaba el tamaño del dispositivo ” alguna sugerencia por tu oportuna ayuda Gracias…..

  19. Tengo un problema mi W7 no arranca desde ningun motivo, he intentado todos los modos seguro pero el problema persiste, inicie la PC desde Linux Ubuntu 14.2 en la configuracion USB tuve que cambiar el boot de la PC, al entrar al disco duro desde llinux el disco duro me arroja este error:
    Error mounting /dev/sda3 at /media/ubuntu/eMachines: Command-line `mount -t “ntfs” -o “uhelper=udisks2,nodev,nosuid,uid=999,gid=999,dmask=0077,fmask=0177” “/dev/sda3” “/media/ubuntu/eMachines”‘ exited with non-zero exit status 13: ntfs_attr_pread_i: ntfs_pread failed: Input/output error
    Failed to read NTFS $Bitmap: Input/output error
    NTFS is either inconsistent, or there is a hardware fault, or it’s a
    SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
    then reboot into Windows twice. The usage of the /f parameter is very
    important! If the device is a SoftRAID/FakeRAID then first activate
    it and mount a different device under the /dev/mapper/ directory, (e.g.
    /dev/mapper/nvidia_eahaabcc1). Please see the ‘dmraid’ documentation
    for more details.

    Cual seria el siguiente paso para no perder mis archivos ??

    • Yo conseguí acceder a los archivos montando la particion como sólo lectura.

      mkdir /media/windows
      sudo mount ntfs-3g -o ro /dev/sda4 /media/windows (En mi caso la partición de los datos era sda4, pero la que sea)

      El problema está en el archivo hiberfil.sys. Si consigues borrarlo podras montar el disco. Y si lo consigues dime cómo, porque yo no he sido capaz.
      Técnicamente se borra con:
      sudo mount ntfs-3g -o remove_hiberfile /dev/sda4 /media/windows
      pero a mi no me funcionó

  20. Hola buenas, ayer tube un problema con el disco duro extraible y buscando información encontré esta web.
    El problema es que cuando intento abrir el disco extraible, me pone que el disco no esta montado y no me deja abrirlo.
    He mirado que disco es con la función “sudo fdisk -l” y he el disco es: Disk /dev/sdb.
    Y con la función “badblocks -s -v -n -f /dev/sdb” me dice que “se ha denegado el permiso en intentar determinar el tamaño del dispositivo”. No se que puedo hacer, si alguien me puede ayudar le agradeceria mucho.

  21. Hola, la reparacion que se hace es lógica y no física, les recomiendo hacer respaldo de datos, formatear todo el disco duro, con gparted dejar en blanco el espacio de disco duro dañado; sin usar, luego particionar a nuestro gusto y listo, el linux no le molestara con problemas de arranque o el tipico “unable to copy, paste o lo que sea”.

  22. Al parecer es bastante útil la herramienta.
    Lleva cerca de 6 días para un disco de 320GB.
    Cuánto más podría demorar?
    Claro que no es un gran hardware donde lo estoy corriendo.

  23. disculpen, ejecuté bad blocks y me salen puras líneas así, el detalle es que no entiendo por qué el porcentaje es tan grande 62K. mi HDD es de 1Tb así que imagino va a tardar bastante.
    mi teoría es que es lleva 0% y 62640 bloques pero no está marcado el espacio.

    626400% hecho, 15:49:59 transcurrido. (6097/0/0 errores)

Dejar una respuesta