SmartMonTools: Как я могу узнать, выполняется ли какой-либо тест smartctl на моем жестком диске?

40

Я тестирую жесткий диск с помощью SmartMonTools .

Состояние жесткого диска до тестирования (только один короткий тест, проведенный несколько дней назад):

$ 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         -

Итак, я начинаю длинный тест :

$ 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.

Тест должен быть запущен , но если я попытаюсь увидеть его ход:

$ 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         -

... все, что я получаю, - это те же результаты, как если бы сейчас не было ни бегающих, ни выполняющих тестов.
Параметр '-H' не дает больше информации:

$ 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

И, пока не запущен процесс (этот тест выполняется только контроллером жесткого диска), некоторыеps -e поиск стилей не должен помочь.

Как я могу узнать, есть ли сейчас какой-нибудь SMART самопроверка ?

Сопалахо де Арриерес
источник

Ответы:

43

В smartctl -a <device>поисках Self-test execution status.

Пример, когда тест не выполняется:

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

Пример во время выполнения теста:

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

При выполнении выборочного самотестирования ( -t select) также будет показан прогресс, показанный здесь:

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
источник
2
Хорошая идея. Я предлагаю вам добавить эту прямую линию (с помощью grepping) в качестве возможности:, smartctl -a /dev/sda | grep "progress" -i -A 1чтобы сократить чрезмерную распечатку информации.
Сопалахо де Арриерес
1
Вам нужна чрезмерная распечатка, чтобы получить всю картину. В скрипте Grep может быть хорошо, но люди , которые привыкли grepвсе в командной строке ( dmesg | grep something, smartctl -a | grep ...и т.д.), они пропустят вещи. В smartctlчастности, нет простой команды, которая говорит вам, что все в порядке ... smartctl -Hэто ложный друг в этом отношении.
frostschutz
@frostschutz "smartctl -H это ложный друг в этом отношении." Ты можешь сказать это снова! Я тоже однажды влюбился в этот вариант, думая, что это может быть связано с самотестированием ... но нет, это совсем другой предмет (и цель).
syntaxerror
Что я делаю для "Устройство не поддерживает запись самотестирования"?
Mr.WorshipMe
13

Пытаться :

smartctl -c /dev/sda

если / dev / sda - это диск, который вы хотите проверить.

SebM
источник
Изменить: Извините. Я был неправ. -c означает --capabilities, но также показывает текущий прогресс теста. как60% of test remaining.
JPT