SmartMonTools:ハードディスクでsmartctlテストが実行されているかどうかを知るにはどうすればよいですか?


40

私はハードディスクのテストのsmartmontoolsを

テスト前のハードディスクの状態(数日前に実行された短いテストは1つのみ):

$ 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
いいアイデア。可能性として、この直接の行を(greppingによって)追加することをお勧めしますsmartctl -a /dev/sda | grep "progress" -i -A 1
ソパラホデアリエレス

1
ただし、全体像を得るには過剰な印刷が必要です。スクリプトでgrepが細かいかもしれませんが、に使用されている人grep、コマンドライン(上のすべてのものdmesg | grep somethingsmartctl -a | grep ...など)が、彼らは物事を欠場します。ではsmartctl具体的にはすべてが大丈夫であるかを示します単純なコマンドはありません... smartctl -Hその点で偽の友人です。
frostschutz

@frostschutz「smartctl -Hはその点で虚偽の友人です。」もう一度言うことができます!私もかつてこのオプションにfallちました。それはセルフテストに関係しているかもしれないと思っていましたが、まったく違う主題(および目的)です。
構文エラー

「デバイスはセルフテストロギングをサポートしていません」に対して何をすればよいですか?
Mr.WorshipMe

13

試してください:

smartctl -c /dev/sda

/ dev / sdaが確認するドライブである場合。


編集:ごめんなさい。私は間違っていた。-cは--capabilitiesを意味しますが、現在のテストの進行状況も表示します。のような60% of test remaining.
JPT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.