Cómo reparar el sector defectuoso del disco duro

17

Traté de arreglar mi disco duro usando Ubuntu pero encontré un mensaje de error y no sabía cómo proceder. Necesito arreglar mis sectores defectuosos

fsck /dev/sdb  
fsck from util-linux 2.20.1  
e2fsck 1.42.5 (29-Jul-2012)  
fsck.ext2: Permission denied while trying to open /dev/sdb  
You must have r/w access to the filesystem or be root  
usuario122095
fuente
1
El texto que ha pegado no parece estar relacionado con su pregunta, ¿puede aclararlo?
thomasrutter

Respuestas:

22

Un sector defectuoso en una unidad es una señal de daño permanente en la unidad. A menos que tenga razones para creer que su unidad marcó estos sectores como incorrectos, no puede "repararlos".

Significa que una parte de su unidad está dañada en la medida en que ya no puede leerse y / o escribirse de manera confiable.

Su sistema puede continuar usando la unidad marcando ese sector como inutilizable, pero podría considerar un reemplazo de la unidad de todos modos, ya que un sector defectuoso puede ser una señal de que más sectores, o toda la unidad, podrían fallar pronto.

Si bien puede haber formas de forzar a la unidad a desmarcar un sector como malo, lo que le permite volver a usarlo, probablemente no sea una buena idea. El sector puede mantenerse bien, pero es probable que vuelva a ser malo nuevamente. Algunos datos pueden perderse o dañarse dependiendo de cómo falle.

Ahora, en cuanto al mensaje de error que ha pegado en su pregunta (al momento de escribir esto), ese error no tiene nada que ver con sectores defectuosos. Significa que no tiene acceso a la unidad. Ser sudopuede darte acceso, entonces:

sudo fsck /dev/sdb

Sin embargo, esto probablemente no sea lo que desea, porque / dev / sdb se refiere a toda la unidad, mientras que fsckestá diseñado para funcionar en sistemas de archivos , que generalmente se colocan en particiones (pero no siempre, y puede tener una excepción aquí) . Si lo anterior no funcionó, es posible que haya querido hacer esto en la primera partición de esa unidad:

sudo fsck /dev/sdb1

Puede obtener una lista de particiones por unidad con:

sudo fdisk -l
thomasrutter
fuente
77
Probablemente sea solo un mal bloque. No puede leer los datos, es todo. Después de reasignar el bloque, es probable que la unidad funcione durante otros tres años. Así va mi experiencia.
Zan Lynx
Un HDD con un sector defectuoso tiene muchas más probabilidades de fallar en cualquier momento que uno que nunca ha tenido un sector defectuoso. ¿En cuántas unidades se basa su experiencia? Todavía lo llamaría una apuesta más grande.
thomasrutter
¿Más como? Seguro. Pero no está condenado de inmediato. Mucho depende de por qué ese bloqueo salió mal. Como dije, he tenido unidades que reasignan lentamente algunos bloques defectuosos durante su vida útil y siguen funcionando.
Zan Lynx
it isn't immediately doomed- No tienes forma de saberlo o garantizarlo. En algunos casos podría ser. So much depends on why that block went bad- sería imposible descubrir de manera confiable el por qué, sin abrirlo y destruirlo efectivamente. Como dije, siempre es un mayor riesgo. Si está absolutamente bien con ese riesgo, no tengo ningún problema con eso. La mayoría de las veces, tal vez incluso> 90% de las veces, la unidad no fallará rápidamente después de encontrar un sector defectuoso y, en algunos casos, incluso podría durar años. Mantenga buenas copias de seguridad y cualquier falla futura no afectará tanto.
thomasrutter
1
Dice "el disco está montado" y no hace nada.
Dims
21

En resumen : inicie un sistema de rescate y use badblocks :

badblocks -svn /dev/sda

para que el controlador del disco duro reemplace los bloques defectuosos por bloques de repuesto.

He respondido la misma pregunta en detalle aquí .

usuario228505
fuente
44
Probablemente quiera usar esto indirectamente con la -copción de fsck . El uso de AFAIK de forma badblocksindependiente nunca cambiará el comportamiento de nada, solo informará dónde están los bloques defectuosos. Por supuesto, el firmware de la unidad podría modificar de manera transparente su comportamiento cuando se somete a los patrones de uso característicos de badblocks, pero ¿seguramente esto dependerá de la unidad?
Amoe
1
Como nuevo usuario, primero debe ganar "reputación" antes de que se le permita realizar ciertas actividades en este sitio. Por lo tanto, no fue posible duplicar esto. Aún así, la pregunta merecía una respuesta. Como los bloques defectuosos son un problema del disco físico (revise los valores SMART, el sistema de archivos no se ve directamente afectado. Podría sufrir daños debido a la pérdida de datos. Por lo tanto, hacer un fsck también es una buena idea. Como la pregunta original era cómo "reparar" bloques defectuosos esta fue la respuesta.
user228505
@amoe, la documentación supone que el comportamiento cambiará, aquí: "Ejecute sudo badblocks -n en el nombre de un dispositivo para ejecutarlo por sí mismo e informe los bloques defectuosos directamente en su terminal. Puede usar la opción -w para usar una prueba de modo de escritura, pero no use las opciones -n y -w juntas, ya que son mutuamente excluyentes. Bajo ninguna circunstancia debe usar la opción -w en un volumen que tenga datos, ya que borrará todo limpio. Use el -n más lento opción ya que conservará sus datos en este caso. La opción -w está bien para volúmenes que no le importa borrar ".
Webwoman
13

En los viejos tiempos solía tener que tomar nota de los bloques defectuosos que estaban escritos en la unidad e ingresarlos en la lista de defectos antes de formatear la unidad, porque las superficies del disco duro nunca fueron "perfectas", el fabricante se dio cuenta de esto porque la gente comprar discos miraría la tabla de defectos impresa en el disco y compraría los que tengan la menor cantidad de defectos ...

Ahora avance unos 20 años y los fabricantes de discos duros ocultan el hecho de que un disco nuevo tiene bloques defectuosos con el firmware, cuando compra un disco nuevo ya tendrá probablemente bloques defectuosos, el firmware detectará bloques defectuosos recién crecidos y los asigna a partir de un conjunto de cilindros de repuesto que tiene, pero esto solo sucede cuando se produce una operación de escritura en ese sector y el algoritmo ECC detecta una falla de bits, solo entonces asignará el bloqueo. Entonces, volviendo al punto, puede forzar a una unidad a mapear los bloques defectuosos simplemente usando DD, es decir, / [editar: el siguiente ejemplo fue editado para evitar la destrucción accidental de la unidad: carácter comodín eliminado, reemplazado por X]

dd if=/dev/zero of=/dev/sdX bs=1M 

obviamente, altere el of = target para reflejar la unidad que desea poner a cero, esta es la forma más rápida de volver a mapear los defectos de una unidad, también es la forma más rápida de destruir totalmente su configuración de Linux haciendo que la unidad de destino sea incorrecta, así que verifique, verifique dos veces luego verifique nuevamente, antes de presionar la tecla enter. Puede aumentar el tamaño del tamaño de bloque en el comando dd para optimizar las lecturas / escrituras y quizás hacer que las cosas vayan más rápido, pero hay rendimientos decrecientes después de un punto. Creo que cualquier cosa entre 1M y 8M funciona mejor para mí

Puede hacer que DD solo escriba un sector, el malo ... para reasignarlo, para que no tenga que hacer una copia de seguridad de su unidad, pero eso es un caldero de peces y ruleta rusa completamente diferente si no sabe exactamente que estas haciendo .....

Este comando destruirá todo en su disco duro, incluidas las particiones. Pero obligará a la unidad a mapear cualquier sector defectuoso que pueda tener.

Está perfectamente bien que un disco tenga sectores defectuosos siempre y cuando no estén en el sector de arranque, si lo están, entonces la unidad no sirve para nada, si observa unos meses más tarde que su unidad ha desarrollado más sectores defectuosos, entonces es hora para comenzar a comprar un reemplazo.

He revivido cientos de unidades como esta y han vivido durante muchos años después, un sector defectuoso no es necesariamente la sentencia de muerte para la unidad.

Derek Brabrook
fuente
He usado este método antes, pero nunca supe por qué funcionó. De un puñado, la mayoría de las unidades duraron años después de haber limpiado la unidad de manera superficial, según lo prescrito.
MER
Ack !! Para los no iniciados, NO COPIAR Y PEGAR ESA LÍNEA. Su caparazón expandirá el comodín '?' con los nombres reales de los dispositivos en / dev. Si accidentalmente presiona enter antes de reemplazar el?, Posiblemente podría borrar la unidad incorrecta. Si tiene más de 1 dispositivo, dd puede arrojar un error, pero no estoy dispuesto a probarlo en mi máquina.
TiberiusKirk