Categories
linux ubuntu

Herramientas de diagnóstico de disco duro en linux

El disco duro es un gran olvidado por los usuario de los ordenadores, tanto a la hora de comprarlos como a la de usarlos. Este dispositivo es el encargado de almacenar todos los datos de nuestro pc: archivos del sistema, archivos personales, descargas de internet, etc. La mayoría de las personas no hacen copias de seguridad de su sistema, y si la hacen, no la hacen con una periodicidad continua, sino cuando se acuerdan. Es por ello que el tener vigilada la salud de nuestro disco duro de forma automática puede evitarnos el susto de perder todos nuestros datos, fotos, videos, documentos y demás cosas de incalculable valor.En linux existen herramientas que nos permiten monitorizar el estado del disco duro, leyendo los datos S.M.A.R.T. y mostrándonos avisos cuando éste empiece a fallar. Para poder utilizar este sistema es necesario seguir los siguientes pasos:

1- Instalar las smartmontools

sudo aptitude install smartmontools

2- Comprobar si es compatible con nuestro disco duro

Primero necesitamos saber el descriptor de nuestro disco duro, para ello ejecutamos la siguiente orden:

pruebas@pruebas:~/linux$ sudo fdisk -l
Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pistas, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disk identifier: 0x824226f5
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 4878 39182503+ 7 HPFS/NTFS
/dev/hda2 4879 9728 38957625 f W95 Ext'd (LBA)
/dev/hda5 4879 8326 27696028+ 7 HPFS/NTFS
/dev/hda6 8448 9728 10289601 83 Linux
/dev/hda7 8327 8447 971901 82 Linux swap / Solaris

Las entradas de la tabla de particiones no están en el orden del disco
Esta nos mostrará todos los discos duros que tengamos y las particiones en ellos. En este caso vemos que solo hay un disco duro y su descriptor es “/dev/hda”. Pasaremos a comprobar si el programa smartmontools puede leer la información S.M.A.R.T. de nuestro disco duro. Ejecutamos lo siguiente:

sudo smartctl -a /dev/hda

El programa debería mostar un montón de información acerca del estado del disco duro, y entre esa información, la siguiente tabla:

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 066 061 006 Pre-fail Always - 154779836
3 Spin_Up_Time 0x0003 099 098 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 66
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 543379417
9 Power_On_Hours 0x0032 081 081 000 Old_age Always - 16966
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 378
194 Temperature_Celsius 0x0022 046 053 000 Old_age Always - 46
195 Hardware_ECC_Recovered 0x001a 066 061 000 Old_age Always - 154779836
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0

Esta es la información que se ha leído del disco, y nos sirve para comprobar que nuestro disco es compatible con la aplicación.

3- Instalar notificador de fallos; éste es un programa que nos alertará en caso de que se produzcan fallos en el disco duro, mostrando una ventana. Para ello ejecutamos:

sudo aptitude install smart-notifier

4- Configurar el demonio “smartd” para que se arranque al inicio del ordenador.
Abrimos el fichero /etc/defaults:

sudo gedit /etc/default/smartmontools

Descomentamos la linea que pone:

start_smartd=yes

5- (en ubuntu 9.04 esto ya no es necesario hacerlo, porque se modifica a la vez que se instala).Añadimos el ejecutable /usr/bin/smart-notifier para que se inicie con nuestra sesión de gnome. Vamos a Sistema>Preferencias>Sesiones y le damos al botón “Añadir”. Ahora cremos una entrada como la siguiente imagen:

Configuracion smart-notifier al inicio de sesión

Después de estos pasos, la siguiente vez que arranquemos el ordenador tendremos el demonio smartd monitorizando los discos duros, y el script smart-notifier nos alertará en el caso de que ocurra algún error.

De todos modos, si queremos comprobar el correcto funcionamiento de la aplicación podemos ejecutar una prueba. Para ello abrimos el fichero /etc/smartd.conf y cambiar la línea que contiene DEVICESCAN por la siguiente:

DEVICESCAN -m root -d sat -M test -M exec /usr/share/smartmontools/smartd-runner

Esta línea añade la opción “-M test”, la cual generará un error de prueba, y nos permitirá comprobar el buen funcionamiento del notificador. Ahora reiniciamos el demonio:

sudo /etc/init.d/smartmontools restart

Y nos debería de salir una ventana como la siguiente:

Notificación de pruebas de smart-notifier

Ahora que ya lo hemos probado tendremos que quitar la opción “-M test” del fichero /etc/smartd.conf que habíamos añadido antes.

Fuente: foros-ubuntu(inglés)

4 replies on “Herramientas de diagnóstico de disco duro en linux”

Hola, me interesa poder hacer pruebas del funcionamiento del programa
(DEVICESCAN -m root -d sat -M test -M exec /usr/share/smartmontools/smartd-runner)
pero por correo electrónico.
¿Sabes como se configura esta opción, por ejemplo que programa de envío de correo usa y como se puede parametrizar este programa de correo?

Un saludo

Gracias por la respuesta.
Después de leer este enlace https://help.ubuntu.com/community/Smartmontools y de hacer un seguimiento a los archivos

* /etc/default/smartmontools
* /etc/smartd.conf

Al final otra opción es modificar el archivo /etc/smartmontools/run.d/10mail, para que envíe la prueba usando sendemail en lugar de mailx como MTA.
Adjunta un fichero con el resultado de la prueba en lugar de meterlo en el texto del correo.
Comenta la última línea y añade las líneas para usar sendemail

#Asunto del correo
Asunto=”El disco duro en el $HOSTNAME no ha superado la prueba de S.M.A.R.T”
# Email To ?
De=”remitente@midominio.com”
# Email text/message
Cuerpo=”Es muy posible que tu disco tenga problemas pronto. Haz copia de seguridad de tus datos y reemplaza a la mayor brevedad posible el disco … ”
# Persona destinatario del mensaje
Destinatario=”destinatario@dominio.com”
# Servidor de correo
ServidorSMTP=”servidordecorreo.midominio.com”
# Usuario de envío
Usuario=”usuariodecorreo”
# Contraseña de envío
Password=”Contraseñadecorreo”
# enviamos using sendEmail
sendEmail -f “$De” -t “$Destinatario” -u “$Asunto” -m “$Cuerpo” -s “$ServidorSMTP” -xu “$Usuario” -xp “$Password” -a “$input”

Este es lo puesto en el archivo /etc/smartd.conf

DEVICESCAN -d sat -M test -M exec /usr/share/smartmontools/smartd-runner -m destinatariocorreo@dominio.com

Una vez probado quitar la opción del test quedando

DEVICESCAN -d sat -M exec /usr/share/smartmontools/smartd-runner -m destinatariocorreo@dominio.com

julio -> me alegro de que al final pudieses lograr lo que querías. Me ha resultado interesante la información que has puesto, así que un día que tenga tiempo intentaré ponerlo en práctica y escribir un disco sobre ello. Gracias por colaborar.

Leave a Reply

Your email address will not be published. Required fields are marked *