Smartctl: Tests largos no terminan y aparecen como abortados / interrumpidos

Al hacer los tests largos (long test) con smartctl es posible que estos nunca lleguen a terminarse y queden catalogados como abortados o interrumpidos.

Ejecutar un long test con smartctl.

smartctl -t long /dev/sdf
smartctl -l selftest /dev/sdf
 
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Aborted by host               90%       530         -
# 2  Extended offline    Aborted by host               90%       528         -
# 3  Extended captive    Interrupted (host reset)      90%       527         -
# 4  Extended captive    Interrupted (host reset)      90%       527         -
# 5  Short offline       Completed without error       00%       527         -
# 6  Extended offline    Aborted by host               90%       521         -

Causa del problema: El standby (spindown) timeout. El disco se pone en estado ahorro de energía al poco de empezar el test y este queda interrumpido.

Comprobar el estado de un disco (Ej. activo)

hdparm -C /dev/sdf
 
/dev/sdf:
 drive state is:  active/idle
 
 
hdparm -C /dev/sdd
 
/dev/sdd:
 drive state is:  standby

Solución: Desactivar spindown en el disco y después ejecutar el análisis con smartctl.

hdparm -B 254 /dev/sdf
hdparm -S 0 /dev/sdf
smartctl -t long /dev/sdf

Si lo anterior no funciona como se espera, se puede abrir una terminal y generar actividad en el disco para que no hiberne. Por ejemplo consultando el estado del “long test” cada 50 segundos.

watch -n 50 "smartctl -c /dev/sdf | grep -i remain"