透過 Smartmontools / smartctl 讀取硬碟 S.M.A.R.T. 資訊

S.M.A.R.T. (Self-Monitoring Analysis and Reporting Technology) 狀態經常被用於判讀硬碟的健康狀態以及提供健康狀態預警,在 Ubuntu / Debian 底下可以透過 smartmontools 套件底下的 smartctl 這支程式來讀取相關的資訊,因為經常不小心忘記用法,所以這邊做個筆記 …

透過 apt-get 安裝:

如果不是在 RAID 底下管理的硬碟,一般可以直接透過指定磁碟代號的方式如 /dev/hda 來讀取資訊或進行測試,例如

顯示監康狀態 (-H/--health)

顯示規格資訊 (-i)

其他常用的還有顯示全部 SMART 資訊的 -a / --all 或是顯示所有資訊的 -x / --xall 以及用來掃描裝置的 --scan 以及進行測試的 --test

透過 Raid Controller 管理的硬碟除了透過 Raid card 的管理工具來看健康狀態以外,同樣可以透過 smartctl 來讀取 SMART 資訊(參考支援列表:https://www.smartmontools.org/wiki/Supported_RAID-Controllers),這邊以 LSI MegaRAID SAS 9260-8i 為例 (LSI/MegaRAID 的貼牌卡還滿多的,用法相同),先透過管理工具 (storcli64) 列出特定 controller 上的所有硬碟 (看你要拿的硬碟資訊是掛在哪個控制器底下):

再根據 Raid Card 的廠牌及 Device ID (DID) 帶入 smartctl, 例如 MegaRAID 就是 megaraid,這邊示範使用代號為 sdc 、 底下 DID = 15,的硬碟,其他參數則按照自行需求調整 :

若是不確定有哪些裝置或是手上的 Raid Card 該用什麼名稱 … 就用 --scan 列出吧:

井字號後面的是註解,/dev/bus/ 後面接的數字以我這邊的例子看起來是 Raid Card 的 Controller 編號,使用時除了透過硬碟代號,直接給 /dev/bus/ 也是可行的,例如

好像常用的就大概這樣了,還有想到再補 …

發表迴響