Diagnosticar se uma unidade é confiável via S.M.A.R.T. atributos

0

Estou tentando descobrir se meu disco rígido está morrendo. Eu pesquisei os valores inteligentes e parece que pode ser, mas ainda lê e grava dados muito bem, e não aparecem novos erros.

Costumava haver um valor 197 Current_Pending_Sector de 8, mas depois de zerar a unidade, o valor foi revertido para 0 e o 196 Reallocated_Event_Count é 0.

Isso significa que não há problema com a própria unidade e foi um problema temporário do sistema?

Também é preocupante o 188 Command_Timeout , que tem um valor de 1, definido como:

The count of aborted operations due to HDD timeout. Normally this attribute value should be equal to zero and if the value is far above zero, then most likely there will be some serious problems with power supply or an oxidized data cable.

Eu tenho feito algumas programações de baixo nível e tive que forçar o desligamento do meu computador cerca de 50 vezes.

Estou assumindo que o valor de 191 G-Sense_Error_Rate de 438 é bom, acho que isso é causado pela movimentação do laptop enquanto o disco rígido está ligado.

O que é realmente engraçado é que minha partição do Windows parou de ser inicializada e não pôde ser montada em outra máquina windows ou linux, mas montou muito bem no OSX, permitindo-me recuperar meus arquivos. Eu reinstalei e copiei dados para ele desde então, e parece funcionar perfeitamente. OSX está em outra unidade.

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.
    
por JeremiahBarrar 12.03.2015 / 06:27

1 resposta

2

There used to be a 197 Current_Pending_Sector value of 8, but after zeroing out the drive the value reverted to 0 and the 196 Reallocated_Event_Count is 0.

Isso significa que, em determinado momento, a unidade teve problemas para ler alguns setores, mas não teve problemas com eles, já que você zerou a unidade. Quando você substituiu a unidade inteira por dados novos, os setores passaram de realocação pendente para normal e, presumivelmente, a unidade ficou satisfeita com a gravação porque os setores não foram realocados nesse ponto. Você deve executar um longo auto-teste SMART (que normalmente inclui uma varredura de superfície) para verificar, mas pode muito bem ter sido uma falha, talvez relacionada a mover o computador enquanto a unidade estava operando.

Also of concern is 188 Command_Timeout which has a value of 1, this is defined as:

Não vale a pena se preocupar. A unidade reporta quase 2600 horas de tempo de ativação e observou um único tempo limite de comando nesse período de tempo. Os tempos limite dos comandos são tratados pelos sistemas operacionais, repetindo o comando com falha ou com falha na operação de E / S, portanto, se esse for um problema persistente, você saberá sobre isso. Pode estar relacionado aos 8 setores pendentes ou pode não estar relacionado.

Eu me preocuparia se isso começasse a aumentar de forma perceptível, mas um número de timeouts de um dígito sem outros sinais de problemas com a operação do sistema não me preocuparia.

I have been doing some low level programming and I have had to force shut off my computer about 50 times.

Isso não deve afetar a unidade física em nenhum nível que valha a pena, embora possa afetar a consistência lógica dos dados (corrupção do sistema de arquivos, etc.).

Além disso, do comentário do sawdust :

You should run the short and extended self-tests. The large number of ID#187 Reported_Uncorrect errors indicates a problem. Seems like there was a swarm of uncorrectabe read errors about 40 POHours ago.

Isso faz um bom ponto, mas não sabemos a codificação do valor bruto. O que podemos dizer é que o "valor" é atualmente um 100 normalizado, com um valor pior visto de 1 e um limiar (para relatar que o drive falhou ou que a falha é iminente) de 0. Ou seja, no momento atual o drive não acha que esse valor é motivo de preocupação. E 1.45e14 ler erros soa quase impossivelmente alto; por sua própria admissão, a unidade tem cerca de (750 GB em 4 KiB / setor) 183.000 setores. Para obter o número de falhas de leitura relatadas como o valor bruto, todo e cada setor individual teria que falhar 791.000 vezes nas 2.586 horas de ativação relatadas, ou uma falha de leitura completa do inteiro superfície a cada 11 segundos. Este é simplesmente um número ridículo (em dez segundos você conseguiria ler apenas uma pequena fração de toda a superfície do disco), então podemos seguramente concluir que para esta unidade e atributo 187, com um alto grau de certeza, o valor bruto é algo outro que uma simples contagem de números inteiros. Pode ser que o valor bruto seja dividido em duas partes, com alta ou baixa bits que codificam o valor real e os outros bits que codificam outra coisa. O valor hexadecimal do valor bruto desse atributo é 83D0 0005 01C8, em que a cadeia de zeros no meio indica tal codificação; embora certamente possível, parece improvável que uma contagem aleatória de erros tenha uma cadeia tão longa de zeros no meio. Se, por exemplo, pegarmos os bits mais baixos (501C8 hex), isso significa que 328.136 relataram erros que, embora ainda pareçam bastante, soam muito mais .

Resultado final, O SMART pode ser uma excelente ferramenta de monitoramento, mas não foi projetado para capturar e relatar todos os problemas. Algumas unidades se movimentam alegremente mesmo após o SMART indicar que elas devem estar completamente descarregadas, e algumas unidades falham catastroficamente, embora a SMART diga que tudo está ótimo mesmo após a falha. Pegue os dados SMART como são, um sistema de alerta antecipado e um relatório de status, não algum tipo de verdade absoluta sobre a integridade da unidade. Além disso, você precisa ler os valores brutos com um olho crítico, pois a codificação deles é definida pela implementação. Em vez disso, você deve verificar como o "valor" relatado se compara ao valor "limite" da unidade, pois eles devem ser definidos de maneira significativa para a unidade específica pelo fabricante.

Se você estiver preocupado com os setores pendentes anteriores (que basicamente significa "difícil de ler"), faça uma varredura de superfície completa pela SMART. Se eles voltarem como "pendentes", então, pode valer a pena considerar a possibilidade de substituir a unidade, mas o simples fato é que praticamente qualquer unidade desenvolverá alguns setores defeituosos ao longo de sua vida útil, e possui vários setores sobressalentes para compensar isso. realocando os setores defeituosos. A realocação exige que os dados sejam conhecidos, portanto, se um setor ficar ruim, ele só poderá ser realocado durante uma gravação para esse setor.

    
por 12.03.2015 / 10:37