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)

2
Гарна ідея. Я пропоную вам додати цей прямий рядок (віджавшись) як можливість:, smartctl -a /dev/sda | grep "progress" -i -A 1щоб скоротити надмірне роздрукування інформації.
Sopalajo de Arrierez

1
Вам потрібна надмірна роздруківка, щоб отримати ціле зображення. В скрипті Grep може бути добре, але люди , які звикли grepвсе в командному рядку ( dmesg | grep something, smartctl -a | grep ...і т.д.), вони пропустять речі. З , smartctlзокрема , не просте команда , яка говорить вам , що все в порядку ... smartctl -Hпомилковий друг в цьому відношенні.
frostschutz

@frostschutz "smartctl -H - помилковий друг у цьому плані". Ти можеш сказати це знову! Я теж один раз потрапив на цей варіант, думаючи, що це може бути пов'язане з самотестами ... але ні, зовсім іншим предметом (і метою).
синтаксичний помилок

Що робити для "Пристрій не підтримує журнал самотестування"?
Mr.WorshipMe

13

Спробуйте:

smartctl -c /dev/sda

якщо / dev / sda - диск, який ви хочете перевірити.


Редагувати: Вибачте. Я був неправий. -c означає --можливості, але це теж показує поточний хід тесту. як60% of test remaining.
JPT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.