Una parte importante del diagnóstico hardware es la comprobación de los discos duros. Si sospechamos que un disco duro tiene problemas es necesario hacer una copia de seguridad de los datos ya que se podrían perder o corromper debido al problema que tenga o a las pruebas que hagamos.
Si falla el disco duro es posible que el sistema operativo esté guardando un registro de los errores. En el archivo /var/log/kern.log de Linux o en el Visor de Sucesos de Windows podemos ver informes de estos errores.
Los discos duros fallan con el tiempo, por eso tienen internamente un sistema llamado S.M.A.R.T (Self Monitoring Analysis and Reporting Technology) que monitoriza el funcionamiento del disco duro, guarda un registro de errores y permite hacer unos test de funcionamiento. Los fabricantes de discos duros suelen poner a disposición de los usuarios un programa específico para sus discos duros para interactuar con el sistema SMART de estos.
Durante la monitorización que realiza el sistema SMART se guardan una serie de atributos sobre el funcionamiento del disco duro. Dependiendo del fabricante y el modelo pueden variar los atributos, sus valores y a partir de que nivel se considera un problema. Cada atributo tiene cuatro parámetros principales a tener en cuenta:
- Value (valor): valor actual del atributo entre 253 y 1.
- Threshold (límite): cuando el valor es menor que este límite indica que el disco funciona mal y va a fallar.
- Worst (peor): el valor más bajo y por tanto peor que ha tenido el atributo
- Raw Value (valor en bruto): dato guardado a partir del que se calcula el valor del atributo
El valor del atributo se calcula a partir del parámetro Raw Value (Valor Bruto), que es el dato que guarda el sistema SMART, como por ejemplo un número de sectores o de horas de funcionamiento. Este parámetro puede ser útil para el diagnóstico del disco duro pero hay que tener en cuenta que su valor y formato así como la forma de calcular el valor del atributo pueden variar entre modelos de disco duro y fabricantes, por lo que es necesario buscar la información necesaria para interpretarlo correctamente o usar el programa del fabricante.
Los discos duros modernos cuando falla un sector lo marcan como "reasignado" y utilizan en su lugar un sector del "área de repuesto". De esta forma no dan error y el disco duro sigue funcionando sin problemas mientras queden sectores libres en el "área de repuesto".
Hay tres parámetros SMART que nos dan información sobre estos sectores:
- Reallocated Sector Count: Sectores que han fallado y han sido reasignados al área de repuesto.
- Reallocated Event Count: Número de veces que se ha intentado reasignar un sector. Se incluyen las veces que funcionó y las que falló.
- Current Pending Sector: Sectores que fallaron y que están pendientes de reasignar.
Mientras el valor de estos atributos no caiga por debajo del límite el disco duro se puede seguir usando, aunque si el valor bruto no es igual a cero puede ser conveniente cambiar el disco porque pueden ser los primeros síntomas de un problema importante que haga fallar el disco en el futuro.
Si el valor del atributo Temperature Celsius está por debajo del límite o el peor valor indica que alguna vez lo ha estado hay que revisar la refrigeración del disco o cambiarlo si no se puede arreglar. En el valor bruto se puede ver la temperatura actual y se puede comparar con el valor indicado en las especificaciones del disco duro.
Otro valor bruto a tener en cuenta es UDMA CRC Error Count. Si aumenta con el uso del disco duro puede indicar que el cable de datos está en mal estado o mal conectado.
El sistema SMART permite hacer dos tipos de test que verifican las propiedades eléctricas y mecánicas del disco y hacen una prueba de lectura: uno corto que dura 2 minutos y solo hace la prueba de lectura de una parte del disco y uno largo que no tiene límite de tiempo y hace la prueba de lectura en todo el disco.
Para interactuar con el sistema SMART y hacer otro tipo de comprobaciones como tests de lectura/escritura para buscar sectores defectuosos debemos usar una serie de programas. Para no dañar el disco duro o los datos grabados en este instalando programas podemos usar un Linux o Windows Live CD como System Rescue CD.
Chequeo BIOS
El BIOS del ordenador puede chequear los parámetros SMART al iniciar y además contar con un programa que permita hacer los tests.
smartctl
Para interactuar con el sistema SMART del disco duro desde Linux se utiliza el programa smartctl de smartmontools, donde también se incluye el programa smartd que permite monitorizar el estado del sistema SMART y realizar acciones ante algún cambio. Estos programas además están disponibles para otros sistemas operativos como Windows o MacOSX.
Ejecutando el siguiente comando se extrae toda la información del primer disco duro.
smartctl -a /dev/sda
Lo primero que aparece son las características del disco como el modelo, número de serie, tamaño, velocidad de rotación o si está activado el sistema SMART.
smartctl 6.6 2016-05-31 r4324 [i686-linux-4.9.0-3-686-pae] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Toshiba 2.5" HDD MK..59GSXP (AF) Device Model: TOSHIBA MK3259GSXP Serial Number: 32HBPA5BT LU WWN Device Id: 5 000039 3e2688944 Firmware Version: GN003J User Capacity: 320.072.933.376 bytes [320 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5400 rpm Form Factor: 2.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS (minor revision not indicated) SATA Version is: SATA 2.6, 3.0 Gb/s (current: 1.5 Gb/s) Local Time is: Mon Jul 17 12:43:30 2017 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled
A continuación empieza la información del estado del sistema SMART y las funcionalidades que tiene activadas. Aquí se puede ver si está en marcha un test o está activada la recogida de información del funcionamiento.
=== START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x85) Offline data collection activity was aborted by an interrupting command from host. Auto Offline Data Collection: Enabled. 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: ( 120) seconds. Offline data collection capabilities: (0x5b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. 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: ( 97) minutes. SCT capabilities: (0x003d) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported.
Después está la lista de atributos que el disco duro mantiene sobre su funcionamiento.
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 0x000b 100 100 050 Pre-fail Always - 0 2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0 3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 1208 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 2942 5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail Always - 0 7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0 8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0 9 Power_On_Hours 0x0032 088 088 000 Old_age Always - 4897 10 Spin_Retry_Count 0x0033 158 100 030 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 1498 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 366 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 24 193 Load_Cycle_Count 0x0032 090 090 000 Old_age Always - 102886 194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 43 (Min/Max 10/53) 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 0x0032 200 200 000 Old_age Always - 0 220 Disk_Shift 0x0002 100 100 000 Old_age Always - 59 222 Loaded_Hours 0x0032 089 089 000 Old_age Always - 4590 223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0 224 Load_Friction 0x0022 100 100 000 Old_age Always - 0 226 Load-in_Time 0x0026 100 100 000 Old_age Always - 239 240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0
A continuación de los atributos se muestra una lista de los errores detectados en el disco duro durante su funcionamiento. En el caso de este disco duro no ha habido ningún error.
SMART Error Log Version: 1 No Errors Logged
Por último está la lista de tests realizados por el sistema SMART al disco duro.
SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 4897 - # 2 Extended offline Completed without error 00% 1502 - # 3 Short offline Completed without error 00% 1500 - 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.
Para ejecutar los tests se utiliza también el programa smartctl con el parámetro -t con el valor short (corto) o long (largo).
smartctl -t short /dev/sda
Y la salida del comando es la siguiente:
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-3-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Short self-test routine immediately in off-line mode". Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 2 minutes for test to complete. Test will complete after Sun Jul 17 12:14:26 2017 Use smartctl -X to abort test.
gsmartcontrol
Para interactuar con el sistema SMART también se puede utilizar la aplicación gsmartcontrol, que es una interfaz gráfica para smartctl. Esta aplicación no está incluida en System Rescue CD.
badblocks
Si se quiere estar aún más seguro de que el disco duro no tiene fallos se puede hacer un test de lectura/escritura en todo el disco con el programa badblocks. Este programa también se puede usar con cualquier tipo de memoria flash. Por defecto solo hace un test de lectura pero con la opción -n o -w hace un test de escritura que consiste en escribir datos y luego leerlos para comprobar que lo escrito es igual que lo leído y el disco funciona correctamente. Es el mismo procedimiento que hace Memtest86+ con la memoria.
La diferencia entre las opciones -n y -w consiste en que con -n se conservan los datos que había en el disco y con -w se pierden. Con -n el procedimiento es más lento ya que tiene que volver a escribir los datos originales. Aunque se use la opción -n es conveniente tener una copia de seguridad por si algo falla o cometemos un error.
Además se puede añadir la opción -s para mostrar el progreso y la opción -v para que muestre más información.
badblocks -nsv /dev/sda Revisando los bloques dañados en modo lectura-escritura no destructivo Del bloque 0 al 312571223 Revisando los bloques dañados (prueba de lectura-escritura no destructiva) Probando con un patrón aleatorio: 1.67% hecho, 1:02 transcurrido. (0/0/0 errores)
Si durante el chequeo encuentra algún error saldrá un mensaje por pantalla y al finalizar se muestra el número de bloques dañados y el número de errores.
Paso terminado, se encontraron 0 bloques dañados. (0/0/0 errores)
Como los discos duros modernos pueden detectar sectores defectuosos y reasignarlos es conveniente volver a revisar los atributos SMART de sectores defectuosos después de hacer un test de lectura/escritura.
e2fsck
En Linux durante un chequeo de un sistema de archivos con e2fsck se le puede indicar que utilice badblocks para comprobar los sectores del disco duro en los que está ese sistema de archivos. Con el parámetro -c hace un test de solo lectura y con -cc uno de lectura y escritura conservando los datos.
hdparm
El programa hdparm permite ver información detallada del disco, cambiar algunos parámetros de funcionamiento y hacer pruebas de velocidad de lectura. Esta información nos puede servir para diagnosticar problemas de rendimiento.
Utilizando la opción -I muestra toda la información del disco duro como el modelo, número de serie, firmware y todas las tecnologías que utiliza.
# hdparm -I /dev/sda /dev/sda: ATA device, with non-removable media Model Number: TOSHIBA MK3259GSXP Serial Number: 32HBPA5BT Firmware Revision: GN003J Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6 Standards: Supported: 8 7 6 5 Likely used: 8 Configuration: Logical max current cylinders 16383 17475 heads 16 15 sectors/track 63 63 -- CHS current addressable sectors: 16513875 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 625142448 Logical Sector size: 512 bytes Physical Sector size: 4096 bytes device size with M = 1024*1024: 305245 MBytes device size with M = 1000*1000: 320072 MBytes (320 GB) cache/buffer size = 8192 KBytes Form Factor: 2.5 inch Nominal Media Rotation Rate: 5400 Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: 254 DMA: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: * SMART feature set Security Mode feature set * Power Management feature set * Write cache * Look-ahead * Host Protected Area feature set * WRITE_BUFFER command * READ_BUFFER command * NOP cmd * DOWNLOAD_MICROCODE * Advanced Power Management feature set SET_MAX security extension * 48-bit Address feature set * Device Configuration Overlay feature set * Mandatory FLUSH_CACHE * FLUSH_CACHE_EXT * SMART error logging * SMART self-test * General Purpose Logging feature set * WRITE_{DMA|MULTIPLE}_FUA_EXT * 64-bit World wide name * IDLE_IMMEDIATE with UNLOAD * {READ,WRITE}_DMA_EXT_GPL commands * Segmented DOWNLOAD_MICROCODE * Gen1 signaling speed (1.5Gb/s) * Gen2 signaling speed (3.0Gb/s) * Native Command Queueing (NCQ) * Host-initiated interface power management * Phy event counters * Idle-Unload when NCQ is active * DMA Setup Auto-Activate optimization Device-initiated interface power management * Software settings preservation * SMART Command Transport (SCT) feature set * SCT Write Same (AC2) * SCT Error Recovery Control (AC3) * SCT Features Control (AC4) * SCT Data Tables (AC5) Security: Master password revision code = 65534 supported not enabled not locked frozen not expired: security count supported: enhanced erase 94min for SECURITY ERASE UNIT. 94min for ENHANCED SECURITY ERASE UNIT. Logical Unit WWN Device Identifier: 50000393e2688944 NAA : 5 IEEE OUI : 000039 Unique ID : 3e2688944 Checksum: correct
Con la opción -t se realiza una prueba de lectura secuencial desde el disco duro.
# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 256 MB in 3.00 seconds = 85.21 MB/sec
Con la opción -T se realiza una prueba de lectura secuencial desde la caché del sistema, por eso la velocidad es mucho mayor.
# hdparm -T /dev/sda /dev/sda: Timing cached reads: 1470 MB in 2.00 seconds = 734.93 MB/sec
chkdsk
Al comprobar un sistema de archivos se le puede indicar al programa chkdsk de Windows que busque los sectores defectuosos del sistema de archivos escaneado e intente recuperar la información escrita en ellos. Para ello se le pasa el parámetro /R.
chkdsk c: /r
Crystal Disk Info
En Windows se puede utilizar el programa libre Crystal Disk Info para ver la información SMART y otras características del disco duro. Este programa además analiza la información, como los sectores defectuosos, e indica el estado del disco. Se puede usar sin necesidad de instalarlo.
HDDScan
Otro programa para Windows, en este caso gratuito, que nos permite ver la información SMART, otros datos de los discos duros y además hacer tests SMART y de lectura y escritura es HDDScan. Tampoco hace falta instalarlo.
Otros programas para Windows (alguno de ellos con versión para otros sistemas operativos) que permiten ver información del disco, monitorizar su estado o realizar operaciones sobre él son HDTune, DiskCheckup o HD Sentinel. En MacOSX se puede usar SMART Utility. Estos programas tienen una version gratuita o de prueba y otra versión de pago con más funciones.
Si las pruebas no muestran ningún error podemos seguir con el resto del diagnóstico hardware.
No hay comentarios:
Publicar un comentario