¿Cómo saben las herramientas de diagnóstico del disco duro si un sector es malo?

13

Cuando me encuentro con un disco duro que puede estar fallando, lo escaneo usando ViVARD , que me permite saber de manera confiable si la unidad necesita ser reemplazada.

¿Cómo funcionan este tipo de herramientas? ¿Cómo pueden distinguir un sector malo de un sector bueno?

David
fuente
44
Un software como ese lee todos los sectores del disco. Si es ilegible, puede intentar algunos trucos para que se lea, si suficientes datos en un sector son ilegibles e irrecuperables, entonces se marca como incorrecto.
Moab
2
El firmware no les dice. El funcionamiento de un HDD desde ese punto ha cambiado drásticamente en 25 años, e incluso en los últimos 5 años.
qasdfdsaq

Respuestas:

9

Los discos duros modernos implementan un sistema en firmware llamado SMART . Este sistema recopila estadísticas sobre el rendimiento del disco y evita automáticamente la pérdida de datos al alejar los datos de los sectores defectuosos.

Las herramientas de diagnóstico consultan el software SMART del disco duro para crear un informe de comprobación de estado.

Los sectores defectuosos se detectan al acceder al disco duro y son evitados y reubicados por el sistema SMART.

Stavr00
fuente
1
moderno, pero esto era perfectamente posible y común incluso sin ellos.
EIS
7

No conozco ViVARD, así que esta es una respuesta general.

INTELIGENTE

SMART es parte de la mayoría de las unidades modernas. Se registra cuando el disco duro ve un sector defectuoso, cuando el tiempo de búsqueda o giro es más de lo normal. Todos estos son indicadores de que el disco duro está fallando.

La forma en que el disco duro salva un sector defectuoso se debe a los códigos de corrección de errores (por lo general, esto es Reed-Solomon) que pueden rescatar si algunos bits están mal. Si muchos bits están mal, el disco duro intenta recuperarse leyendo el sector una y otra vez. Cuando finalmente lo hace bien, lo guarda en uno de los sectores libres.

Sector de lectura

El disco duro reasigna sectores con errores de lectura a un conjunto de sectores de reserva reservados para esto. El sistema operativo generalmente no ve esto, pero ve que toda la unidad no tiene errores. Solo cuando no haya más sectores para reasignar (o el sector no pueda ser rescatado) el sistema operativo verá los sectores rotos.

Pero es posible evitar la corrección de errores (creo que es diferente para cada modelo, ¿tal vez ViVARD hace esto?). De esta manera, puede leer los datos reales en la unidad. Al leer esto, podrá ver qué sectores tienen errores, incluso si el sistema operativo no ve errores.

Ole Tange
fuente
0

Use SMART Los fabricantes de discos duros deben tener una descarga de software en su sitio web. Cuando use SMART, ejecute un análisis completo.

roberthayek
fuente
-1

Si tuviera que escribir un programa de diagnóstico de este tipo, mi programa pasaría por la unidad sector por sector con el siguiente procedimiento:

  1. Mueva los datos actualmente en el sector a una nueva ubicación (actualmente vacía) para su preservación (y actualice las tablas de archivos que usaron este sector).
  2. Escribir nuevos datos conocidos para el sector.
  3. Lea los datos escritos del sector.
  4. Comparar fue escrito bit por bit con lo que se leyó.
  5. (Asumiendo el paso 4 aprobado) Mueva los datos originales a la ubicación original (para evitar la fragmentación de los archivos).

Por supuesto, esa es solo la versión ingenua. Sospecho que hoy se utilizan algoritmos para hacer que este proceso general sea más eficiente. Además, existen diferentes patrones que las herramientas usan para los "datos nuevos conocidos", y diferentes niveles de repetición.

Joel Coehoorn
fuente