UbuntuでSSDの寿命を確認するには、smartctlコマンドを使用します。
smartctlは、ハードディスク(HDD)やSSDの健康状態を自己診断するS.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)システムを操作するための強力なコマンドラインツールです。
smartmontoolsのインストール
smartctlコマンドを使用するためには、「smartmontools」パッケージをインストールする必要があります。
$ sudo apt update $ sudo apt install smartmontools
基本的な使用方法
実行には管理者権限が必要なため、通常は「sudo」を付けて実行します。
$ sudo smartctl [オプション] [デバイスパス]
よく使うオプションの概要
- -a, --all: 製造元情報、対応機能、現在の健康状態、エラーログなど、そのドライブの全S.M.A.R.T.情報を表示します。
- -d [type]: 自動認識しない外付けドライブやRAID環境の場合に使用します。(USBでの外付けなら sat、NVMeなら nvme など)
- -H:ドライブの総合的な健康状態(Health Status)のみを表示します。
- -l error:エラーの履歴を表示します。
- -t short: 簡易テスト(数分)を実施します。
- -t long: 全部のセクタをスキャンする詳細テスト(数時間)を実施します。
- -l selftest: 実施した自己診断テストの結果を表示します。
- --xall, -x: すべての拡張ログを含めた最も詳細な情報を表示します。
デバイスのスキャン
まずは「smartctl --scan」コマンドで、接続されているストレージのデバイスパス(/dev/sdaなど)を確認します。
※外付けストレージやRAIDなどはスキャンされない場合があります。
$ smartctl --scan /dev/sda -d scsi
「/dev/sda」が接続されていることが確認できました。
smartctlコマンド実行
確認したデバイスパスを使って、実際に以下のように実行します。
$ sudo smartctl -a /dev/sda
SSDの寿命を調べる方法
以下のコマンドを実行することで、SSDの寿命に関する項目を確認できます。
$ sudo smartctl -a /dev/sda
SSDの接続規格には主にNVMeとSATAの2通りがあり、それぞれで表示結果や見るべき項目が異なります。順に説明していきます。
NVMe SSDの場合
NVMe規格のSSDでは表示項目が統一されているため、以下の項目を確認することで残りの寿命を把握できます。
- Percentage Used
- メーカーが保証する書き込み寿命(Endurance)に対する使用率です。
-
- 0%:新品に近い状態
- 100%:メーカーが保証する書き込み寿命に達した状態
- 100%超え:100%を超えても即故障するわけではありませんが、予備領域が減り、いつ故障してもおかしくない状態
- Available Spare
- 予備領域の残り(%)です。
- 通常は100%ですが、これが減り始めると物理的な劣化が進んでいるサインです。
- Data Units Written
- 今まで書き込んだデータの総容量が表示されます。
- 製品カタログなどに記載されている TBW (Total Bytes Written) と比較することで、物理的な限界まであとどのくらい余裕があるか推測できます。
※今回は手元にNVMe規格のSSDがないため、実際の実行例は省略します。
SATA SSDの場合
SATA SSDはメーカーやモデルによって項目名(ID)が異なりますが、主に以下の項目に注目します。
- Percent_Lifetime_RemainまたはSSD_Life_Left
- 寿命の目安となる、残り寿命のパーセンテージを表示します。
-
- VALUE:残りの寿命(%) 100から始まり、0に近づくほど寿命が近いことを意味します。
- RAW_VALUE:使用した寿命(%)0から始まり、100に近づくほど寿命が短い(消耗している)ことを意味します。
-
$ sudo smartctl -a /dev/sda | grep -E "ATTRIBUTE_NAME|Percent_Lifetime_Remain" ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 202 Percent_Lifetime_Remain 0x0031 020 020 --- Pre-fail Offline - 80
残りの寿命(VALUE)が20%になっているので、私のSSDはかなり使い込まれている状態ですね…。
- Wear_Leveling_Count
- SSD全体のブロックがどれだけ平均的に書き換えられたかを、メーカーが設定した寿命(最大消去回数)に基づいた「パーセンテージ」や「カウント」で表します。
-
- VALUE:書き換え上限に対してどれだけ消耗しているか「%」で表示。100が新品で、0に近づくと寿命です。
- RAW_VALUE:実際の書き換え回数です。
-
$ sudo smartctl -d sat -a /dev/sdb | grep -E "ATTRIBUTE_NAME|Wear_Leveling_Count" ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 177 Wear_Leveling_Count 0x0013 099 099 017 Pre-fail Always - 14
- Ave_Block-Erase_Count
-
SSD内の全ブロックが実際に何回消去(書き換え)されたかの物理的な平均回数を示します。
「全ブロックの総消去回数 ÷ 全ブロック数」で算出された平均の実数です。 -
- VALUE:消去の上限に対してどれだけ消耗しているか「%」で表示。100が新品で、0に近づくと寿命です。
- RAW_VALUE:実際の平均消去回数
-
$ sudo smartctl -a /dev/sda | grep -E "ATTRIBUTE_NAME|Ave_Block-Erase_Count" ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 173 Ave_Block-Erase_Count 0x0032 020 020 --- Old_age Always - 2412
-
【豆知識】NANDの種類による耐久性の違い
使用されているNANDフラッシュメモリによって、書き換え可能回数の目安が異なります。ご自身のSSDの型番と「NAND」で検索すると確認できるかもしれません。 -
- QLC:約1,000回(大容量・低価格)
- TLC:約3,000回(主流・バランス型)
- MLC:約10,000回 (高耐久・高価)
- SLC:約100,000回(業務用高耐久・高価)
- Total_LBAs_Written
- データの総書き込み容量です。
- 製品カタログに記載されている TBW (Total Bytes Written) と比較することで、物理的な限界まであとどのくらい余裕があるか推測できます。
Total_LBAs_Written が表示されない場合の書き込み量確認方法
SATA SSDで Total_LBAs_Written が見当たらない場合、-x オプションを使用してデータ書き込みサイズを計算することができます。
まずは「INFORMATION SECTION」に表示されている「Sector Sizes」を確認します。
$ sudo smartctl -x /dev/sda | grep "Sector Sizes" Sector Sizes: 512 bytes logical, 4096 bytes physical
次に Device Statistics の項目にある Logical Sectors Written(書き込まれたセクタ数)を確認します。
$ sudo smartctl -x /dev/sda | grep "Logical Sectors Written" 0x01 0x018 6 94883700242 --- Logical Sectors Written
この「セクタ数」に先ほどの「セクタサイズ(512 bytes)」を掛けることで、書き込んだ総データサイズを算出できます。
SSDのパッケージに書かれているTBWは一般的に「1000」単位で計算されるため、以下のように bc コマンドで計算してみます。
$ echo "scale=2; 94883700242 * 512 / 1000 / 1000 / 1000 / 1000" | bc 48.58
計算の結果、約48.58TB分のデータを書き込んだことが確認できました!
各オプションの詳細な使用例と見方
ここからは、目的別に各オプションの詳しい出力結果の見方を解説します。(※以下の出力例は私の環境のものです)
-a, --all:全情報の表示
ドライブの全S.M.A.R.T.情報を表示します。
出力結果は、主に以下の5つの大きなブロック(セクション)で構成されています。
基本情報(=== START OF INFORMATION SECTION ===)
モデル名、シリアルナンバー、容量、ファームウェアなどが記載されています。
全体的な健康状態(=== START OF READ SMART DATA SECTION ===)
ドライブ自身が判定した総合結果です。PASSEDなら致命的な問題なし、FAILEDなら危険な状態です。
詳細な健康指標 (SMART Attributes Data Structure)
稼働時間、温度、寿命の目安となるパーセンテージなどが一覧になっています。
寿命の目安となる「残り寿命のパーセンテージ(Percent_Lifetime_Remain)」や「総書き込み量に関する指標」がここに含まれるため、ドライブの劣化具合を具体的に読み取ることができます。(※メーカーによって表示される項目名が微妙に異なります)
エラーの記録 (SMART Error Log)
過去に発生したエラー履歴です。
正常ならNo Errors Logged(エラー記録なし)と表示されます。
セルフテストの履歴 (SMART Selective self-test log)
過去に実行された自己診断テスト(ショートテストやロングテスト)の履歴が記録されています。
$ sudo smartctl -a /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Crucial/Micron Client SSDs
Device Model: Crucial_CT120M500SSD1
Serial Number: xxxxxxxxxxxx
##### 中略 #####
User Capacity: 120,034,123,776 bytes [120 GB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
##### 中略 #####
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
...[中略:General SMART Values 等]...
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x0032 100 100 --- Old_age Always - 11143
5 Reallocate_NAND_Blk_Cnt 0x0032 100 100 --- Old_age Always - 98304
9 Power_On_Hours 0x0032 100 100 --- Old_age Always - 64197
12 Power_Cycle_Count 0x0032 100 100 --- Old_age Always - 6547
##### 中略 #####
202 Percent_Lifetime_Remain 0x0031 020 020 --- Pre-fail Offline - 80
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 64197 -
# 2 Short offline Completed without error 00% 64197 -
##### 中略 #####
#20 Vendor (0xff) Completed without error 00% 10932 -
#21 Vendor (0xff) Completed without error 00% 10789 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
##### 中略 #####
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
The above only provides legacy SMART information - try 'smartctl -x' for more
デバイスタイプの指定:-d [type]
自動認識しない外付けドライブなどに使用します。
typeはUSB変換アダプタ経由のHDDなら「sat」、NVMeなら「nvme」を指定します。
以下は、壊れたMacBookからSSDを取り出してUSB経由(sat)で接続している例です。
$ sudo smartctl -d sat -a /dev/sdb smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Device Model: APPLE SSD SM256C Serial Number: xxxxxxxxxxxx LU WWN Device Id: 5 0000f0 000000000 Firmware Version: AXM09A1Q ##### 以下省略 #####
健康状態だけを確認:-H
ドライブの総合的な健康状態(Health Status)だけを確認したい時に使用します。
確認すべきポイントは一番最後の行で、結果は基本的に以下のどちらかになります。
- PASSED (合格):正常な状態です。
- FAILED! (不合格・警告):寿命の限界(しきい値)を超えているか、重大な故障の兆候があります。
$ sudo smartctl -H /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
エラー履歴のみを確認:-l error
エラーログの履歴を表示します。
$ sudo smartctl -l error /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Error Log Version: 1 No Errors Logged
簡易自己診断テストの実行:-t short
SSD内部の簡易テストを開始します。
実行すると、メッセージの最後の方に、テストにかかる予想時間が表示されます。
今回の場合「Please wait 2 minutes for test to complete.」と表示されているので、2分ほどでテストが完了するようです。
$ sudo smartctl -t short /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Short self-test routine immediately in off-line mode". Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 2 minutes for test to complete. Test will complete after Mon Apr 6 19:22:20 2026 JST Use smartctl -X to abort test.
結果の確認方法:-l selftest
数分待った後に -l selftest オプションを使って結果を確認します。
「Test_Description」が「Short offline」と表示されているのが、「-t short」でのテスト結果となります。
「Status」が「Completed without error」となっていれば合格です。
$ sudo smartctl -l selftest /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, 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% 64197 - # 2 Short offline Completed without error 00% 64192 - # 3 Vendor (0xff) Completed without error 00% 35605 - ##### 以下省略 #####
テストが終了していない場合は「Self-test routine in progress」といったステータスが表示されます。
$ sudo smartctl -l selftest /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, 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 Self-test routine in progress 90% 64197 - # 2 Short offline Completed without error 00% 64192 - # 3 Vendor (0xff) Completed without error 00% 35605 - ##### 以下省略 #####
詳細テストの実行:-t long
全セクタをスキャンする詳細テストです。
容量によっては数時間かかります。
$ sudo smartctl -t long /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, 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 9 minutes for test to complete. Test will complete after Mon Apr 6 19:33:32 2026 JST Use smartctl -X to abort test.
結果の確認方法
テストの結果は、「-l selftest」オプションを使用することで確認することができます。
「Test_Description」が「Extended offline 」と表示されているのが、「-t long」でのテスト結果となります。
$ sudo smartctl -l selftest /dev/sda smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build) Copyright (C) 2002-23, 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 Extended offline Completed without error 00% 64197 - # 2 Short offline Completed without error 00% 64197 - # 3 Short offline Completed without error 00% 64192 - # 4 Vendor (0xff) Completed without error 00% 35605 - # 5 Vendor (0xff) Completed without error 00% 18047 - ##### 以下省略 #####
すべての拡張ログを表示:--xall, -x
「-a」では見られない、新しい規格の拡張ログや、統計を表示することができます。
「-x」で追加される重要な項目
- SCT Temperature History:アスキーアート(***)で描かれる1分刻みの温度グラフ。熱対策のトラブルシューティングに役立ちます。
- Device Statistics:これまでの総読み書き量(Logical Sectors Written / Read)などを確認できます。TBWを計算する際に必須となることが多いです。
$ sudo smartctl -x /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-107-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Crucial/Micron Client SSDs
Device Model: Crucial_CT120M500SSD1
Serial Number: xxxxxxxxxxxx
##### 中略 #####
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
##### 中略 #####
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
1 Raw_Read_Error_Rate -O--CK 100 100 --- - 11145
5 Reallocate_NAND_Blk_Cnt -O--CK 100 100 --- - 98304
9 Power_On_Hours -O--CK 100 100 --- - 64216
##### 中略 #####
202 Percent_Lifetime_Remain P---CK 020 020 --- - 80
206 Write_Error_Rate -OSR-- 100 100 --- - 0
General Purpose Log Directory Version 1
SMART Log Directory Version 1 [multi-sector log support]
Address Access R/W Size Description
0x00 GPL,SL R/O 1 Log Directory
0x01 SL R/O 1 Summary SMART error log
##### 中略 #####
0xe0 GPL,SL R/W 1 SCT Command/Status
0xe1 GPL,SL R/W 1 SCT Data Transfer
SMART Extended Comprehensive Error Log Version: 1 (16383 sectors)
No Errors Logged
SMART Extended Self-test Log Version: 1 (1 sectors)
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 64197 -
# 2 Short offline Completed without error 00% 64197 -
##### 中略 #####
#18 Vendor (0xff) Completed without error 00% 11243 -
#19 Vendor (0xff) Completed without error 00% 11228 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
##### 中略 #####
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
SCT Status Version: 3
SCT Version (vendor specific): 1 (0x0001)
Device State: Active (0)
Current Temperature: 36 Celsius
Power Cycle Min/Max Temperature: 26/39 Celsius
Lifetime Min/Max Temperature: 26/39 Celsius
Under/Over Temperature Limit Count: 0/0
SCT Temperature History Version: 2
Temperature Sampling Period: 1 minute
Temperature Logging Interval: 1 minute
Min/Max recommended Temperature: 0/70 Celsius
Min/Max Temperature Limit: -5/75 Celsius
Temperature History Size (Index): 478 (378)
Index Estimated Time Temperature Celsius
379 2026-04-07 14:06 36 *****************
... ..( 41 skipped). .. *****************
421 2026-04-07 14:48 36 *****************
##### 中略 #####
307 2026-04-07 20:52 36 *****************
... ..( 70 skipped). .. *****************
378 2026-04-07 22:03 36 *****************
SCT Error Recovery Control command not supported
Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x01 ===== = = === == General Statistics (rev 2) ==
0x01 0x008 4 6553 --- Lifetime Power-On Resets
##### 中略 #####
0x07 ===== = = === == Solid State Device Statistics (rev 1) ==
0x07 0x008 1 8 N-- Percentage Used Endurance Indicator
|||_ C monitored condition met
||__ D supports DSN
|___ N normalized value
Pending Defects log (GP Log 0x0c) not supported
SATA Phy Event Counters (GP Log 0x11)
ID Size Value Description
0x0001 4 0 Command failed due to ICRC error
0x000a 4 3 Device-to-host register FISes sent due to a COMRESET


コメント