2012-01-30 20:59:25 +0000 2012-01-30 20:59:25 +0000
38
38
Advertisement

¿Cómo forzar una reasignación de los sectores informados en el S.M.A.R.T C5 (Recuento de sectores pendientes actuales)?

Advertisement

El valor S.M.A.R.T C5 de mi disco duro Samsung HM640JJ (en un portátil HP Pavilion dv6) es “estado amarillo = precaución”

C5 era 10 ayer, y es 21 hoy.

C4 (Reallocation Event Count) = 0 y 05 (Reallocated Sectors Count) = 0

¿Cómo puedo forzar al firmware a reasignarlos?

  • He eliminado las particiones, las he vuelto a crear y he formateado todo el disco.
  • He ejecutado chkdsk /r /f
  • He ejecutado la utilidad de comprobación de disco de la BIOS y otras herramientas de diagnóstico/reparación
Advertisement
Advertisement

Respuestas (8)

120
120
120
2013-12-15 18:06:48 +0000

Respuesta corta: Escribir algo nuevo en el sector (incluso ceros - lo que hace un formato largo).

Respuesta larga

Hoy en día, los discos duros intentan ocultar los sectores defectuosos al ordenador central. El ordenador central simplemente pide a la unidad que devuelva el contenido de un número de sector concreto. Normalmente, la unidad lee el sector, lo devuelve a la máquina anfitriona y todo está bien.

El disco duro sabe si el valor que lee es válido o no, porque la unidad utiliza el Código de corrección de errores (ECC) para validar que el contenido que lee es correcto. Si la unidad detecta que el contenido del sector no es válido, volverá a intentar la lectura. La esperanza es que si simplemente lo lee de nuevo, podría obtener el contenido correcto del sector. Seguirá reintentando hasta que obtenga un buen valor, o hasta que haya alcanzado su límite de tiempo (formalmente conocido como Límite de tiempo de finalización de comandos, o CCTL _).

Durante estos reintentos, la unidad parecerá muerta; ya que no responde a los comandos .

Sectores de reserva

La mayoría de las unidades modernas contienen un número de sectores “de reserva” (por ejemplo, 1.024 sectores de reserva). Si la unidad reconoce un sector como malo, dejará de utilizarlo. Cualquier solicitud de lectura o escritura en ese sector dañado será redirigida de forma transparente a un sector de reserva. Este marcado de un sector defectuoso, y la reasignación de sus datos a un sector de repuesto, se denomina Evento de reasignación. Y el número total de sectores que han sido reasignados (y por tanto cuántos de sus sectores de repuesto han sido utilizados) es el Cuento de sectores reasignados.

En este ejemplo de uno de mis discos duros, se encontraron 64 sectores defectuosos. Esto significa que 64 de los sectores libres de la unidad han sido llamados a ser utilizados:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64

En este mismo disco duro, ha habido 4 Eventos de reasignación. Esto significa que hubo cuatro ocasiones en las que la unidad marcó sectores como malos y utilizó sectores de reserva en su lugar.

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4

¿Qué pasa si no se pueden leer los datos?

Estas acciones de relectura de sectores, consumiendo repuestos, todo a espaldas del ordenador es algo bueno. Significa que el sistema operativo anfitrión no tiene que ocuparse del problema de los sectores que fallan. La propia unidad puede manejar esos detalles por sí misma.

Charla de bonificación : Antiguamente, el disco duro se entregaba con una pegatina pegada. Esta pegatina contenía la Lista de defectos de fábrica; la lista de todos los puntos malos conocidos de la unidad.

Si se realizaba un formateo de bajo nivel de la unidad, había que utilizar una herramienta para teclear todas las ubicaciones del Sector de Cabeza de Cilindro de los puntos malos.
Las unidades SCSI tienen un comando, IOCTL_DISK_REASSIGN_BLOCKS , para decirles que reasignen un punto malo en la unidad después de que el sistema operativo lo detecte. En las unidades IDE todo esto ocurre automáticamente, sin necesidad de que intervenga el sistema operativo.

Lo ideal sería que la unidad reconociera que el sector está fallando, moviera los datos a un sector de reserva y no volviera a utilizar el sector original. Pero, ¿qué ocurre si la unidad no ha podido leer el sector con éxito?

Esto es lo que son los Pending Sectors. La unidad ha detectado que un sector está fallando, y necesita ser reasignado a un repuesto. Pero no puede hacerlo hasta que pueda leer los datos con éxito. Cuando la unidad sabe que un sector es malo, y necesita ser reasignado, pero no puede hacerlo todavía porque está esperando a obtener una buena lectura del sector: eso se llama el Cuento de sectores pendientes :

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
(C5) Current Pending Sector 100 100 0 2

Mi disco duro tiene 2 sectores que la unidad reconoce como malos, pero que aún no pueden ser reasignados. Si leyera uno de estos “sectores pendientes”, la unidad probablemente reintentaría (y reintentaría, y reintentaría), y finalmente devolvería un error de lectura al sistema operativo anfitrión:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 66
(C4) Reallocated Event Count 196 196 0 5
(C5) Current Pending Sector 100 100 0 0

Abandona el sector pendiente y se reasigna

Hay dos formas en las que la unidad puede finalmente reasignar el sector, y consumir otro sector de reserva:

  • finalmente consigue una buena lectura
  • ya no le importa lo que hay en el sector

Si la unidad finalmente lee el sector, entonces sabe que puede reasignar el sector.

La otra forma en que la unidad puede reasignar el sector es si le haces saber que el contenido de ese sector es irrelevante; que ya no te importa lo que hay en él. ¿Cómo se hace eso?

Escribiendo algo nuevo en el sector.

Cada vez que lees o escribes en un sector de un disco duro, tienes que leer/escribir el sector entero de 512 bytes1. No se puede escribir sólo parte de un sector. Cuando el sistema operativo escribe datos en un sector, tiene que especificar los enteros 512 bytes. Si le dices al disco duro que quieres que estos nuevos contenidos sustituyan a este sector defectuoso, el disco sabe que no te importa lo que hay actualmente en el sector defectuoso. Entonces puede Reasignar un sector defectuoso a uno de los repuestos, y el sector ya no está Pendiente.

Por eso, cuando la gente pregunta por Al tener algunos Current Pending Sectors, el consejo común es utilizar una herramienta (como Data LifeGuard de Western Digital) para escribir todos los ceros en la unidad.

> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.

        12 KB in bad sectors.

Al escribir ceros en todos los sectores de la unidad, le está diciendo a la unidad que por fin puede reasignar todos esos molestos sectores pendientes. Tras el borrado, todos tus Pending Sectors se convertirán en Reallocated Sectors:

ID Attribute Name Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18

Nota: No es estrictamente necesario utilizar una herramienta de “bajo nivel” como Data LifeGuard de Western Digital. Si le indica a Windows que realice un formato completo (es decir, que no sea un formato rápido) de un volumen, escribirá ceros en todos los sectores del volumen.

El sistema de archivos del SO soporta marcar sectores como malos

Armados con este conocimiento, exploraremos un escenario comúnmente confuso.

Antes de la llegada de la Educación de Unidades Integradas (IDE), el sistema operativo anfitrión era responsable de detectar los sectores malos, reintentar las lecturas, mover los datos a otro sector y marcar los sectores antiguos como malos.

Si se ejecutara un chkdsk /r c: con el sistema operativo anfitrión, éste reconocería que los sectores “pendientes” son malos, y los marcaría como malos él mismo, y no volvería a intentar usarlos:

>chkdsk c: /B

Así que suponiendo un disco duro de 512 bytes de sector, 12 KB de “Sectores Pendientes” o en este ejemplo 12KB marcados por el SO como “sectores malos”, eso correspondería al decimal 24 o al hexadecimal 0x18 como se mostraría con una S. M.A.R.T. como Crystal Disk Information:

/B NTFS only: Re-evaluates bad clusters on the volume
                (implies /R)

Nota : La utilidad Data LifeGuard v1.31 de Western Digital (la más reciente al 31 de agosto de 2017) no parece mostrar correctamente los valores actuales del contador S.M.A.R.T. ‘Raw’.

Ahora si realiza un formato completo (que escribe ceros en cada sector del volumen):

/B NTFS only: Clears the list of bad clusters on the volume and 
                  rescans all allocated and free clusters for errors. /b includes
                  the functionality of /r. Use this parameter after imaging a
                  volume to a new hard disk drive.

Eso significa que todos esos sectores que eran Pending van a ser reasignados. Ahora es seguro que el sistema de archivo vuelva a utilizar esos sectores. Para indicarle al sistema de archivo que esos sectores ya no son “malos”, se realiza una opción en la que se revalúan los sectores malos:

donde la documentación del comando dice

O

Según https://technet.microsoft.com/en-us/library/cc730714(v=ws.11).aspx

Esto fue un montón de escritura, y un montón de capturas de pantalla, para algo que nunca será leído.

5
5
5
2012-09-11 10:05:04 +0000

No necesitas hacer nada - todavía. El recuento de reasignación significa “el disco encontró un sector defectuoso y lo reasignó con éxito”. El firmware ya ha solucionado el problema.

Sólo tienes que ser consciente de que el disco está empezando a fallar. En algún momento, la unidad no tendrá sectores de reserva para la reasignación y perderás datos. Si se pierde algún bloque importante, podrías perder todos los datos de la unidad.

Así que vigila este valor o compra una unidad nueva de inmediato para olvidarte de ella.

3
Advertisement
3
3
2012-01-30 21:29:36 +0000
Advertisement

Tuve una buena experiencia con el método descrito aquí https://www.smartmontools.org/wiki/BadBlockHowto . Mi disco hacía ruido y dejaba de funcionar, así que utilicé el informe de smart y la fórmula para calcular el bloque defectuoso y utilizar dd para borrarlo. Tuve suerte porque smart sigue informando de un recuento de sectores actual, pero el disco funciona desde hace 2 años más o menos. Compré un reemplazo pero nunca lo he usado. Me parece que smart tampoco es tan preciso.

2
2
2
2012-10-18 08:38:52 +0000

Tal vez no conozca esta herramienta HD Sentinel

Hard Disk Sentinel (HDSentinel) es un software de monitorización y análisis de SSD y HDD para múltiples sistemas operativos. Su objetivo es encontrar, probar, diagnosticar y reparar los problemas de las unidades de disco duro, informar y mostrar la salud de los SSD y HDD, las degradaciones de rendimiento y los fallos. Hard Disk Sentinel ofrece una descripción textual completa, consejos y muestra/reporta la información más completa sobre los discos duros y discos de estado sólido dentro del ordenador y en recintos externos (discos duros USB / discos duros e-SATA). Hay disponibles muchas opciones de alertas e informes diferentes para garantizar la máxima seguridad de sus valiosos datos.

Esta parece ser una gran herramienta para realizar dichas acciones. Pero tenga cuidado, algunas opciones de ejecución pueden destruir completamente los datos.

1
Advertisement
1
1
2013-05-31 11:13:45 +0000
Advertisement

Prueba con Spinrite 6 o con los CDs de arranque del regenerador de discos duros. Hacen pruebas de superficie de escritura, por lo que deberían eliminar los sectores defectuosos pendientes y aumentar el número de reasignaciones.

1
1
1
2012-06-08 21:34:36 +0000

Cero escritura, también conocido como Formato de Bajo Nivel. Esto sólo se puede hacer con una utilidad de disco del fabricante normalmente. Si hay un fallo en el disco duro causando este error, puede volver casi de inmediato.

1
Advertisement
1
1
2012-01-30 21:22:33 +0000
Advertisement

Necesitas usar una herramienta que escriba en cada sector de la unidad. De lo contrario, no hay manera de hacerlo. Si la unidad asignó un sector de reserva y reasignó, ¿qué datos debería poner en el sector de reserva? No tiene ni idea, ya que su intento de leer desde el sector existente falló. Sólo una operación de escritura puede borrar el error.

0
0
0
2019-10-30 15:48:58 +0000

Para añadir otra solución, recientemente usé Victoria para reparar 2 discos que fallaban con sectores pendientes, pero el disco no los reasignaba automáticamente por sí mismo.

Victoria es una interfaz gráfica de bajo nivel para su disco, e incluye (¡si realmente quiere!) la edición real del disco byte a byte, forzar la reasignación de sectores en los fallos, soporta unidades USB y esos adaptadores USB-2-sata baratos de China, cambiar los atributos y características inteligentes establecidos de fábrica, y más.

El inconveniente es que está desarrollado por un desarrollador ruso, y te dejo que abras la caja de Pandora si tienes problemas con él…

Con Victoria, tomé el primer sector que falló en el remapeo, corrí un escaneo de “Lectura” de cada sector después de eso con un remapeo forzado. Luego ejecuté una “Verificación” de todo el disco, volví a ejecutar la comprobación inteligente, y ahora está bien…

…Pero, tengo discos de repuesto, así que estoy en el proceso de intercambiarlos ahora. ¡Esto fue un poco de miedo, ya que también estoy entre las soluciones de copia de seguridad, de todos los tiempos!

Advertisement

Preguntas relacionadas

19
18
16
3
2
Advertisement