smartmontools 在 Linux 中檢查 SSD 健康狀態 (Crystaldiskinfo 替代品)

最近 SSD 價格越來越便宜,使得 SSD 越來越普及化了。但由於 SSD 有一個致命的缺點,就是當 SSD 壽命到臨頭時,記憶晶片損壞,一般 HDD(傳統磁碟硬碟)相比更難恢復數據。所以一般建議 SSD 的使用範圍都圍繞在系統碟最佳,儘量不要儲存重要的資料,以免損壞時資料無法救援回來。

防範勝於救援,追蹤 SSD 使用狀態以及其壽命,變成使用 SSD 的一件重要的課題。對於 Windows 系統的使用者來說,檢查 SSD 健康值是一件非常簡單的事情,一般都會使用 Crystaldiskinfo 這套軟體來查看數據,簡單且美觀的使用者介面對於 Linux 系統使用者來說就是一件遙不可及的事情了。雖然 Linux 系統沒有美觀的介面,但功能齊全,查看各個硬碟參數應有盡有。

軟體資訊

檔案名稱- smartmontools
軟體性質- 開源軟體
支援系統- Windows, Mac OS X, Linux
官方網站- www.smartmontools.org
下載連接- 官方下載點

前置作業

sudo fdisk -l
sudo apt install smartmontools

軟體教學

從剛剛用 fdisk 查到的硬碟位置後(/dev/nvme0),輸入到指令裡面即可查看查詢的結果。

sudo smartctl --all /dev/nvme0
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-6.0.0-0.deb11.2-amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       ADATA LEGEND 710
Serial Number:                      2M402LAG5CD9
Firmware Version:                   VC0S036H
PCI Vendor/Subsystem ID:            0x1cc1
IEEE OUI Identifier:                0x707c18
Controller ID:                      1
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          512,110,190,592 [512 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            707c18 6e63cffa37
Local Time is:                      Mon Apr 10 15:50:25 2023 CST
Firmware Updates (0x02):            1 Slot
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0054):     DS_Mngmt Sav/Sel_Feat Timestmp
Log Page Attributes (0x02):         Cmd_Eff_Lg
Maximum Data Transfer Size:         32 Pages
Warning  Comp. Temp. Threshold:     100 Celsius
Critical Comp. Temp. Threshold:     110 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     8.00W       -        -    0  0  0  0        0       0
 1 +     4.00W       -        -    1  1  1  1        0       0
 2 +     3.00W       -        -    2  2  2  2        0       0
 3 -   0.0300W       -        -    3  3  3  3     5000   10000
 4 -   0.0050W       -        -    4  4  4  4    54000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

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

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        43 Celsius
Available Spare:                    100%
Available Spare Threshold:          32%
Percentage Used:                    0%
Data Units Read:                    124,011 [63.4 GB]
Data Units Written:                 1,096,668 [561 GB]
Host Read Commands:                 2,736,262
Host Write Commands:                39,543,221
Controller Busy Time:               0
Power Cycles:                       13
Power On Hours:                     206
Unsafe Shutdowns:                   5
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, 8 of 8 entries)
No Errors Logged
資訊說明
Available Spare就是 SSD 所謂的健康值了。當區域損壞越多 Available Spare 數值就會越低,當 Available Spare 低到一定程度時,控制晶片可能就會進入防寫入保護,以保護資料。當遇到該 SSD 的健康值過低時,建議可以即時的更換,以免重要資料損失。
Available Spare ThresholdSSD 備用空間值,當 Available Spare 小於 Available Spare Threshold 時,就代表該 SSD 已經進入極限狀態。
Percentage Used廠商依據寫入以及讀取兩而定義的壽命百分比,當全新的 SSD 該數值應為 0
Data Units Read總資料讀取
Data Units Written總資料寫入
Power Cycles通電次數
Power On Hours運行時間,記錄運行的小時數
Unsafe Shutdowns非正常斷電次數

結語

從以前耐用的 MLC,到價格便宜的 TLC,到現在沒那麼耐用的 QLC。經過幾次新技術的發展,SSD 越來越便宜但其壽命也越來越不耐用,這時就要定期的去查看健康度,發現健康度不佳時,即時更換 SSD 才可以保護重要資料。

這一次介紹的 smartmontools 讓 MacOS、Linux 都可以使用簡單的指令才查看詳細的 SSD 相關狀態資料,讓平時有在維護伺服器的朋友來說,可說是極推薦的工具之一。

有話大聲說!