SmartMonTools: ¿Cómo puedo saber si hay alguna prueba de smartctl ejecutándose en mi disco duro?

40

Estoy probando un disco duro con SmartMonTools .

Estado del disco duro antes de las pruebas (solo se realizó una prueba corta hace días):

$ sudo smartctl -l selftest /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== 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  Short offline       Completed without error       00%      5167         -

Entonces comienzo la prueba larga :

$ sudo smartctl -t long /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 130 minutes for test to complete.
Test will complete after Sat May  9 16:05:27 2015

Use smartctl -X to abort test.

Se supone que la prueba se está ejecutando , pero si trato de ver su progreso:

$ sudo smartctl -l selftest /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== 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  Short offline       Completed without error       00%      5167         -

... todo lo que obtengo son los mismos resultados, como si no hubiera pruebas de ejecución / ejecución en este momento.
El parámetro '-H' no da más información:

$ sudo smartctl -H /dev/sda
smartctl 6.2 2013-07-26 r3841 [i686-linux-3.16.0-30-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Y, mientras no haya ningún proceso en ejecución (esta prueba la realiza solo el controlador del disco duro), alguna ps -ebúsqueda de estilo no debería ayudar.

¿Cómo puedo saber si hay alguna autocomprobación SMART ejecutándose en este momento?

Sopalajo de Arrierez
fuente

Respuestas:

43

En smartctl -a <device>busca de Self-test execution status.

Ejemplo cuando no se ejecuta ninguna prueba:

Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.

Ejemplo mientras se ejecuta una prueba:

Self-test execution status:      ( 249) Self-test routine in progress...
                                        90% of test remaining.

Al ejecutar la prueba automática selectiva ( -t select), también se mostrará un progreso aquí:

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA    MAX_LBA  CURRENT_TEST_STATUS
    1        0  125045423  Self_test_in_progress [90% left] (2881512-2947047)
Frostschutz
fuente
2
Una buena idea. Le sugiero que agregue esta línea directa (mediante grepping) como una posibilidad: smartctl -a /dev/sda | grep "progress" -i -A 1para cortar la impresión de información excesiva.
Sopalajo de Arrierez
1
Sin embargo, necesita una impresión excesiva para obtener la imagen completa. En una secuencia de comandos grep puede estar bien, pero la gente que está acostumbrada a greptodo en la línea de comandos ( dmesg | grep something, smartctl -a | grep ..., etc.), que se perderá cosas. En smartctlparticular, no hay un comando simple que te diga que todo está bien ... smartctl -Hes un falso amigo en ese sentido.
frostschutz
@frostschutz "smartctl -H es un falso amigo en ese sentido". ¡Puedes decir eso otra vez! Yo también me he enamorado de esta opción una vez, pensando que podría tener que ver con las autoevaluaciones ... pero no, un tema (y un propósito) completamente diferente.
syntaxerror
¿Qué debo hacer para "El dispositivo no admite el registro de autoprueba"?
Mr.WorshipMe
13

Tratar :

smartctl -c /dev/sda

si / dev / sda es la unidad que desea verificar.

SebM
fuente
Editar: lo siento. Estaba equivocado. -c significa --capacidades pero también muestra el progreso actual de la prueba. como60% of test remaining.
JPT