Diagnosticar si una unidad es confiable mediante atributos SMART

Diagnosticar si una unidad es confiable mediante atributos SMART

Estoy tratando de averiguar si mi disco duro está muriendo. He investigado los valores inteligentes y parece que podría serlo, pero todavía lee y escribe datos bien y no aparecen nuevos errores.

Solía ​​​​haber un 197 Current_Pending_Sectorvalor de 8, pero después de poner a cero la unidad, el valor volvió a 0 y es 196 Reallocated_Event_Count0.

¿Significa esto que no hay ningún problema con la unidad en sí y que fue un problema temporal del sistema?

También es preocupante 188 Command_Timeoutcuál tiene un valor de 1, esto se define como:

El recuento de operaciones abortadas debido al tiempo de espera del disco duro. Normalmente, el valor de este atributo debe ser igual a cero y si el valor está muy por encima de cero, lo más probable es que haya problemas graves con la fuente de alimentación o un cable de datos oxidado.

He estado haciendo programación de bajo nivel y he tenido que forzar el apagado de mi computadora unas 50 veces.

Supongo que el 191 G-Sense_Error_Ratevalor de 438 está bien, creo que esto se debe a que mueves la computadora portátil mientras el disco duro está encendido.

Lo que es realmente divertido es que mi partición de Windows dejó de iniciarse y no se pudo montar en otra máquina con Windows o Linux, pero se montó bien en OSX, lo que me permitió recuperar mis archivos. Lo reinstalé y le copié datos desde entonces, y parece funcionar perfectamente. OSX está en otra unidad.

H2O:~ jeremiah$ smartctl -a /dev/disk1
smartctl 6.3 2014-07-26 r3976 [x86_64-apple-darwin14.1.0] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     HGST HTS541075A9E680
Serial Number:    JD13021X0A00GK
LU WWN Device Id: 5 000cca 764c48bc4
Firmware Version: JA2OA590
User Capacity:    750,156,374,016 bytes [750 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Wed Mar 11 21:59:30 2015 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (   45) seconds.
Offline data collection
capabilities:            (0x51) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 164) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   086   062    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0025   100   100   040    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0023   169   100   033    Pre-fail  Always       -       1
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       981
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002f   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0025   100   100   040    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       2586
 10 Spin_Retry_Count        0x0033   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       851
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   097    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   001   000    Old_age   Always       -       144929376764360
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       1
190 Airflow_Temperature_Cel 0x0022   069   050   045    Old_age   Always       -       31 (Min/Max 24/31)
191 G-Sense_Error_Rate      0x0032   099   099   000    Old_age   Always       -       438
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       2031647
193 Load_Cycle_Count        0x0032   089   089   000    Old_age   Always       -       115337
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0036   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x002a   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 456 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 456 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:34.282  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:30.471  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:26.660  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT

Error 455 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:30.471  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:26.660  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED

Error 454 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:26.660  READ DMA EXT
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED
  60 08 a0 30 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED

Error 453 occurred at disk power-on lifetime: 2549 hours (106 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 38 8d 62 00  Error: UNC 8 sectors at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 08 38 8d 62 40 00      00:00:22.849  READ DMA EXT
  2f 00 01 10 00 00 00 00      00:00:22.849  READ LOG EXT
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED
  60 08 a0 30 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 98 28 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED

Error 452 occurred at disk power-on lifetime: 2548 hours (106 days + 4 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 08 38 8d 62 00  Error: UNC at LBA = 0x00628d38 = 6458680

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 a8 38 8d 62 40 00      00:00:19.060  READ FPDMA QUEUED
  60 08 a0 30 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 98 28 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 90 20 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED
  60 08 88 18 8d 62 40 00      00:00:19.059  READ FPDMA QUEUED

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Respuesta1

Solía ​​​​haber un valor 197 Current_Pending_Sector de 8, pero después de poner a cero la unidad, el valor volvió a 0 y 196 Reallocated_Event_Count es 0.

Esto significa que en un momento dado, la unidad tuvo problemas para leer algunos sectores, pero no ha tenido ningún problema con ellos desde que puso a cero la unidad. Cuando sobrescribiste todo el disco con datos nuevos, los sectores pasaron de reasignación pendiente a normal y presumiblemente el disco estuvo contento con la escritura porque los sectores no fueron reasignados en ese punto. Debería ejecutar una autoprueba SMART larga (que normalmente incluye un escaneo de superficie) para verificar, pero es muy posible que haya sido un problema técnico, tal vez relacionado con mover la computadora mientras la unidad estaba en funcionamiento.

También es preocupante 188 Command_Timeout que tiene un valor de 1, esto se define como:

No vale la pena preocuparse. La unidad informa casi 2600 horas de tiempo de encendido y ha experimentado un tiempo de espera de comando único en ese período de tiempo. Los sistemas operativos manejan los tiempos de espera de los comandos reintentando el comando fallido o fallando la operación de E/S, por lo que si se trata de un problema persistente, lo sabrá. Puede estar relacionado con los 8 sectores pendientes o puede no estar relacionado.

Me preocuparía si esto comienza a aumentar notablemente, pero un número de tiempos de espera de un solo dígito sin otros signos de problemas con el funcionamiento del sistema no me preocuparía.

He estado haciendo programación de bajo nivel y he tenido que forzar el apagado de mi computadora unas 50 veces.

Esto no debería afectar la unidad física en ningún nivel por el que valga la pena preocuparse, aunque podría afectar la coherencia de los datos lógicos (corrupción del sistema de archivos, etc.).

Además, desdeserrínEl comentario de:

Debe ejecutar las autopruebas cortas y extendidas. La gran cantidad de errores ID#187 Reported_Uncorrect indica un problema. Parece que hubo un enjambre de errores de lectura incorregibles hace unas 40 horas.

Esto tiene un buen punto, peroNo conocemos la codificación del valor bruto.Lo que podemos decir es que el "valor" es actualmente un 100 normalizado, con un valor peor visto de 1 y un umbral (para informar que la unidad ha fallado o que la falla es inminente) de 0. Es decir,en el presentela unidad no considera que este valor sea motivo de preocupación. Y los errores de lectura 1.45e14 suenan casi increíblemente altos; según admite él mismo, la unidad tiene aproximadamente (750 GB a 4 KiB/sector) 183.000 sectores. Para obtener el número de errores de lectura informados como valor bruto, todos y cada uno de los sectores habrían tenido que fallar 791.000 veces en las 2.586 horas de encendido reportadas, o un error de lectura total del sistema.completosuperficie cada 11 segundos. Este es simplemente un número ridículo (en diez segundos podríasleersólo una pequeña fracción de toda la superficie del disco), por lo que podemos concluir con seguridad que para esta unidad y el atributo 187, con un alto grado de certeza,el valor bruto esalgún otroque un simple recuento de números enteros.Puede ser que el valor bruto esté dividido en dos partes, con los bits altos o bajos codificando el valor real y los otros bits codificando algo más. El valor hexadecimal del valor bruto de ese atributo es 83D0 0005 01C8, donde la cadena de ceros en el medio indica dicha codificación; si bien es ciertamente posible, parece poco probable que un recuento de errores aleatorios tenga una cadena tan larga de ceros en el medio. Si, por ejemplo, tomamos los bits inferiores (501C8 hexadecimal), eso equivale a 328,136 errores reportados, lo cual, si bien sigue siendo bastante, suena como un error.lotemás creíble.

Línea de fondo,SMART puede ser una excelente herramienta de monitoreo, pero no está diseñada para detectar e informar todos los problemas. Algunas unidades funcionan felizmente incluso mucho después de que SMART indique que deberían estar completamente muertas, y algunas unidades fallan catastróficamente a pesar de que SMART dice que todo está bien incluso después de la falla. Tome los datos SMART como lo que son, un sistema de alerta temprana y un informe de estado,noalgún tipo de verdad absoluta sobre la salud del disco. Además, debe leer los valores sin procesar con ojo crítico, ya que su codificación está definida por la implementación.Bastante,debe observar cómo se compara el "valor" informado con el valor "umbral" de la unidad, ya que se supone que el fabricante los define de manera significativa para la unidad en particular.

Si le preocupan los sectores pendientes anteriormente (que básicamente significan "difíciles de leer"),ejecute un escaneo de superficie completa a través de SMART.Si vuelven a aparecer como "pendientes", entonces podría valer la pena considerar si se debe reemplazar la unidad, pero el simple hecho es que casi cualquier unidad se desarrollará.algunosectores defectuosos durante su vida útil y tiene una serie de sectores de repuesto para compensarlo reasignando los sectores defectuosos. Sin embargo, la reasignación requiere que se conozcan los datos, por lo que si un sector falla, solo se puede reasignar durante una escritura en ese sector.

información relacionada