¿Cómo saber si tu HDD tiene sectores dañados o está mal de salud?

16
5506

Hace no mucho les hablé sobre cómo medir el rendimiento de un HDD en Linux, es lógico que si la escritura es muy lenta (800kb o algo así) el HDD tiene definitivamente algún problema, pero esta no es la única forma de saberlo.

S.M.A.R.T

¿Qué es en realidad S.M.A.R.T?, bien, según Wikipedia:


La tecnología S.M.A.R.T., siglas de Self Monitoring Analysis and Reporting Technology, consiste en la capacidad de detección de fallos del disco duro. La detección con anticipación de los fallos en la superficie permite al usuario el poder realizar una copia de su contenido, o reemplazar el disco, antes de que se produzca una pérdida de datos irrecuperable.

O sea, que hace años atrás sabíamos que un HDD tenía problemas cuando dejaba de funcionar, cuando ya era tarde y perdíamos información, pero hoy en día afortunadamente no necesitamos llegar a tanto, podemos saber cuando el disco empieza a fallar, para entonces hacer salvas de la información.

¿Cómo trabajar con SMART en Linux?

Los que usamos Linux tenemos una herramienta perfecta para la terminal: smartmontools

Para instalarlo en ArchLinux sería:

sudo pacman -S smartmontools

En distros como Debian, Ubuntu o derivados:

sudo apt-get install smartmontools

Una vez instalado debemos verificar si está activado el SMART en el HDD:

sudo smartctl -i /dev/sda

Esto lo revisará para el HDD principal o primero, o sea, /dev/sda … Si tienen otro HDD que también quieran verificar ejecuten el comando otra vez pero con sdb en vez de sda

Les debe salir algo como esto:

smart-enabled

Esto significa que está habilitado.

En caso de que NO salga Enabled, o sea, que no esté habilitado, lo pueden habilitar así:

sudo smartctl -s on -d ata /dev/sda

¿Cómo verificar la salud del HDD con datos de SMART?

La idea es hacer una prueba (una corta y otra larga) al HDD, luego revisar el log de errores, así sabremos si tiene errores, cuáles son, y si debemos apurarnos a salvar los datos.

Para hacer una prueba corta (demora 1 minuto aproximadamente) es:

sudo smartctl -t short /dev/sda

Para hacer la prueba larga:

sudo smartctl -t long /dev/sda

Les recomiendo entre cada prueba revisar el log de errores, para ello sería:

sudo smartctl -l error /dev/sda

Si el disco duro está completamente sano les saldrá esto:

smart-test-ok

¿Cómo se vería si el HDD tiene problemas?

Si el disco duro tiene problemas entonces al ejecutar el comando anterior, el output sería similar a este:

smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.18.5-1-ARCH] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Please note the following marginal Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
190 Airflow_Temperature_Cel 0x0022 044 033 045 Old_age Always FAILING_NOW 56 (96 110 58 25)

Para más detalles pueden usar este otro comando:

sudo smartctl --attributes --log=selftest /dev/sda

Lo cual les mostraría un output similar a este, digo similar y no igual porque evidentemente es algo difícil que dos discos duros fallen exactamente igual jeje:

smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.18.5-1-ARCH] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x000f   098   092   006    Pre-fail  Always       -       238320363
3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       -       0
4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       587
5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       9
7 Seek_Error_Rate         0x000f   077   060   030    Pre-fail  Always       -       51672328
9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       4805
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       586
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       417
188 Unknown_Attribute       0x0032   100   099   000    Old_age   Always       -       4295032833
189 High_Fly_Writes         0x003a   094   094   000    Old_age   Always       -       6
190 Airflow_Temperature_Cel 0x0022   044   033   045    Old_age   Always   FAILING_NOW 56 (96 122 58 25)
194 Temperature_Celsius     0x0022   056   067   000    Old_age   Always       -       56 (0 23 0 0)
195 Hardware_ECC_Recovered  0x001a   043   026   000    Old_age   Always       -       238320363
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       49
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       49
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       172082159686339
241 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       2155546016
242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       3048586928
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%      4789         1746972641

Si quieren aún leer mucha más información, el comando para que les muestre un output completo, casi que un debug detallado es:

sudo smartctl -d ata -a /dev/sda

Fin!

Bueno nada, ha sido todo… otro artículo más sobre HDDs 😉

16 COMENTARIOS

  1. Buenas, un interesante articulo. Muy util por sinceramente. Solo una cosa por aclarar, cuando quise instalarlo en mi Debian, encontre que tenes un error de tipeo.

    # apt-get install smartmoontools

    es en realidad:

    # apt-get install smartmontools

    Espero puedas corregirlo, gracias por el aporte.

  2. Un post muy interesante y útil. Saludos excelente blog.

    Por cierto, la instalación en Debian, Ubuntu o derivados está mal escrita, el paquete es smartmontools, te sobra una «o».

    sudo apt-get install smartmontools

  3. En relación con este excelente artículo me agradaría poder comentar en relación con el disco rígido de mi ordenador, pero ciertamente que mi consulta es muy extensa y creo lo voy a hacer a través de “ask.desdelinux.net·” si al autor le parece bién.

Dejar una respuesta