はじめに
備忘録
実行環境はこちら
- Linux(Ubuntu)
バージョン: 22.04
背景
購入した中古PCの寿命が近いのかどうか気になった
「S.M.A.R.T.」とは?
Self-Monitoring, Analysis and Reporting Technology
コンピュータのHDDやSSDなどのストレージデバイスに組み込まれた、自己監視、分析、および報告技術の規格。この技術は、ストレージデバイスの健康状態やパフォーマンスを監視し、問題を事前に検出するのに役立つ。
-
自己監視(Self-Monitoring)
ストレージデバイスは、自身の状態を監視し異常が発生する前に問題を検出する機能がある。これによりデバイスの故障やデータの喪失を事前に予測できる。 -
分析(Analysis):
S.M.A.R.T.データはデバイスの稼働状態を評価し問題の発生要因を分析する。例えば、「不良セクタの増加」や「温度の上昇」などの異常が検出された場合、それに関する情報を提供する。 -
報告(Reporting):
S.M.A.R.T.データはユーザーやシステム管理者に提供され、問題の警告や異常の詳細を通知する。これにより適切な対策を講じるための情報が提供される。
「smartctl」とは
smartctl
はS.M.A.R.T.を制御し、ストレージデバイス(HDDやSSDなど)の健康状態を監視・管理するために使用されるコマンドラインツールのこと。このツールを使用することで、ストレージデバイスのS.M.A.R.T.属性や情報を取得し、問題の検出・診断・報告が可能になる。
「smartctl」を使う
基本構文
smartctl [オプション] [デバイス名]
ヘルプを表示
smartctl -h/--help/--usage [デバイス名]
※オプション沢山ある(40個くらい)
# インストール
$ sudo apt install smartmontools
# which
$ which smartctl
/usr/sbin/smartctl
# [デバイス名]を調べる
$ smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device
# Prints all SMART information
$ smartctl --all /dev/sda
## これが出てれば基本問題なし
SMART Error Log Version: 1
No Errors Logged
--all
はすべての情報を出力する。情報量が多い。
-A
のオプションを使うとSMART情報のところだけ表示される。
$ smartctl -A /dev/sda
...
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 924
12 Power_Cycle_Count 0x0032 099 099 000 Old_age Always - 794
170 Unused_Rsvd_Blk_Ct_Chip 0x0032 100 100 010 Old_age Always - 0
171 Program_Fail_Count_Chip 0x0032 100 100 010 Old_age Always - 0
172 Erase_Fail_Count_Chip 0x0032 100 100 010 Old_age Always - 0
173 Wear_Leveling_Count 0x0033 093 093 005 Pre-fail Always - 56
174 Unexpect_Power_Loss_Ct 0x0032 099 099 000 Old_age Always - 7
178 Used_Rsvd_Blk_Cnt_Chip 0x0013 100 100 010 Pre-fail Always - 0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0013 100 100 010 Pre-fail Always - 1850
184 End-to-End_Error 0x0033 100 100 097 Pre-fail Always - 0
187 Uncorrectable_Error_Cnt 0x0032 100 100 000 Old_age Always - 0
194 Temperature_Celsius 0x0032 069 017 000 Old_age Always - 31
199 CRC_Error_Count 0x003e 100 100 000 Old_age Always - 0
233 Media_Wearout_Indicator 0x0013 093 093 000 Pre-fail Always - 15602809
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 3431
242 Total_LBAs_Read 0x0032 099 099 000 Old_age Always - 2901
249 NAND_Writes_1GiB 0x0032 099 099 000 Old_age Always - 14448
項目が沢山ある。この結果を見ると今のところ問題はない状態のよう。
主要な項目の意味合い
- Reallocated_Sector_Ct:
リアロケーションされたセクタのカウントが0で、これは良好。リアロケーションはディスク上の不良セクタを修正するために行われるが、カウントが増えるとディスクの健康状態が悪化する可能性あり。 - Power_On_Hours:
稼働時間は923時間で、これは Old_age 状態。ドライブが長時間稼働していることを示しているけど、特に問題はなし。 - Wear_Leveling_Count:
ウェアレベリングカウントが56で、これは Pre-fail 状態。ウェアレベリングはSSDの寿命を管理するための機能で、カウントが低い場合、SSDの寿命が短くなる可能性あり。ただし、現在の値は問題のある数値ではない。 - Temperature_Celsius:
温度が35度で、通常の範囲内。過熱の兆候はなし。 - Uncorrectable_Error_Cnt:
修正不能なエラーカウントが0で、これは問題なし。 - Media_Wearout_Indicator:
メディアの摩耗指標が15602809で、Pre-fail 状態。この値はSSDの寿命に関連していて、低→高への値の変化が寿命を示す。現在の値はまだ健康的な範囲内。 - Total_LBAs_WrittenとTotal_LBAs_Read:
これらの値はデータの書き込みと読み取りの統計情報だが、特に問題なし。 - NAND_Writes_1GiB:
これは1ギガバイトあたりの書き込み回数を示しているが、これも特に問題なし。
「S.M.A.R.T.」属性の見方について
[参照]
Wikipedia: Self-Monitoring, Analysis and Reporting Technology
表でまとまっている。
おわりに
内容整理おわり