Hard-Drive

SMART 測試做什麼以及它是如何工作的?

  • July 29, 2018

man smartctl狀態(為簡潔起見):

第一,稱為“線上”測試。第二測試稱為“離線”測試。通常,磁碟會在進行磁碟訪問時暫停離線測試,然後在磁碟空閒時自動恢復。第三測試(也是唯一適合選擇“測試”這個詞的類別)是“自我”測試。

啟用或禁用 SMART 自動離線測試,它每四小時掃描一次驅動器以查找磁碟缺陷。該命令可以在系統正常執行期間發出。

誰執行試駕韌體?這些是什麼類型的測試——韌體是否讀/寫到磁碟——到底發生了什麼?在作業系統(linux)中呼叫測試是否安全,或者可以安排稍後進行測試 - 這是如何發生的 - 當您在 BIOS 提示符下重新啟動作業系統時(“離線測試”)?結果顯示在哪裡 - SMART 日誌?

  1. 驅動器韌體執行測試。

  2. 可以在例如 www.t13.org/Documents/UploadedDocuments/technical/e01137r0.pdf 中閱讀測試的詳細資訊,其中總結了短期和長期測試的要素:

  3. 一個電氣部分,驅動器在其中測試自己的電子設備。此部分中的特定測試是特定於供應商的,但作為範例:此部分可能包括諸如緩衝 RAM 測試、讀/寫電路測試和/或讀/寫磁頭元件測試之類的測試。

  4. 尋軌/伺服段,其中驅動器測試它在數據磁軌上查找和伺服的能力。此測試中使用的特定方法也是特定於供應商的。

  5. 讀取/驗證掃描段,其中驅動器執行磁碟表面某些部分的讀取掃描。掃描表面的數量和位置取決於完成時間限制,並且是特定於供應商的。

  6. 擴展自檢的標準與短自檢相同,但有兩個例外:擴展自檢的第 (3) 段應是對所有使用者數據區域的讀取/驗證掃描,並且沒有驅動器執行測試的最大時間限制。

  7. 在作業系統執行時執行無損測試是安全的,但可能會影響性能。正如smartctl手冊頁對-t shortand所說的那樣-t long

該命令可以在正常系統操作中給出(除非在俘虜模式下執行)

如果您使用 呼叫強制模式-Csmartctl則假定驅動器可能忙於不可用。這應該在作業系統正在使用的驅動器上完成。

正如手冊頁還暗示的那樣,離線測試(僅意味著定期後台測試)是不可靠的,並且從未正式成為 ATA 規範的一部分。相反,我從 cron 執行我的;這樣我就知道它們什麼時候應該發生,並且我可以在需要時阻止它。

  1. 結果可以在smartctl輸出中看到。這是一個正在執行的測試:
[root@risby 圖片]# smartctl -a /dev/sdb
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.1.6-201.fc22.x86_64](本地建構)
版權所有 (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org
[...]
SMART 自檢日誌結構修訂號 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 擴展離線完成,沒有錯誤 00% 20567 -
# 2 擴展離線完成,沒有錯誤 00% 486 -

SMART 選擇性自檢日誌資料結構修訂號 0
注意:版本號不是 1 表示從未執行過選擇性自檢
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Self_test_in_progress [剩餘 90%] (0-65535)
2 0 0 未測試
3 0 0 未測試
4 0 0 未測試
5 0 0 未測試

請注意之前完成的兩項測試(分別在 486 和 20567 小時通電時)和目前正在執行的一項(完成 10%)。

引用自:https://serverfault.com/questions/732423