Linux と Windows で同じ SSD ヘルスチェックを実行しましたが、全体像が得られたのは 1 つだけでした
この記事を書いている時点で、私の NVMe SSD は約 4 年前のもので、交換することを考えるのに十分なくらい古いものです。とはいえ、現在ストレージ価格が高騰しているため、市場が落ち着くまでは購入を控えたいと思う気持ちもあります。このような状況での賢明な行動は、ドライブを本当に交換する必要があるかどうかを確認することです。しかし、探している答えを見つけるためだけにオペレーティング システムを切り替える必要があるとは予想していませんでした。
Windows は SSD が正常であると言いました
しかし、それは、最近の子供たちがそう呼んでいるように、
Windows は、SSD の状態を監視するための非常に基本的なツールを提供します。通常は、ターミナルを開いて次のコマンドを実行します。
Get-PhysicalDisk | Select FriendlyName, MediaType, HealthStatus, OperationalStatus, Size
ただし、ストレージデバイスが正常かどうかを示すだけです。それは便利ですが、私の好みには少しバイナリすぎるように感じました。知りたかった どうやって 健康的でした。それは定性的な質問ではなく、むしろ定量的な質問でした。
残念ながら、Windows の組み込みツールにはその答えがなかったので、CrystalDiskInfo をインストールしました。率直に言って、これは何年も前に実行すべきでした。情報密度の違いは顕著でした。基本的な「健全」ラベルに加えて、ドライブの完全な SMART データ、つまり書き込みデータの合計、読み取りデータの合計、電源投入時間、利用可能な予備容量、そして (私の目的にとって最も重要なのは) メーカーの TBW (書き込みテラバイト) 定格に基づく耐久性の消費を反映する「使用率」の数値が表示されました。
データが不安に感じられる理由
私の Crucial P3 500GB NVMe ドライブ (Windows インストールを保持しているドライブ) は現在 77% の健全性評価を示しています。私がこれを約 4 年間使用していることを考えると、大まかに計算すると、70% を下回るまでにはまだ 1 年か 1 年半あります。実際に交換を検討し始める必要がある時点です。
ただし、これは SSD の摩耗が線形パターンに従うことを前提としています。そうでない場合はどうなりますか?劣化が進んでしまったらどうなるのでしょうか?
ドライブは常に予測どおりに故障するとは限りません。ある日は 100% の健康状態を報告しても、次の日には死亡する可能性があります。だからこそ、生の健康率は物語の一部しか伝えないのです。また、その下に蓄積されているエラーにも注目する必要があります。
そして、私のドライブには重大な警告がまったく表示されなかった一方で、CrystalDiskInfo は私を悩ませ続けていた 1 つの数字を明らかにしました。それは、「エラー情報ログ エントリの数」が 6,605 でした。ただし、それらのエラーが実際に何であるかはわかりませんでした。その時点で、私は Windows ベースのツールが教えてくれる情報の限界にほぼ達していました。
上の画像は 6,610 のカウントを示しています。これは、Windows を再起動した後に画像を撮影したためで、明らかにエラー数が増加したためです。

「健全性 100%」の SSD スコアは罠です: サイレントデータ破損の隠れた兆候
SSD にエラーが隠れている可能性がありますが、手遅れになるまでわかりません
Linux は SSD エラーが実際に何であるかを教えてくれました
CrystalDiskInfo の足跡はどこに消えたのか
私は Linux-Windows デュアルブート セットアップを実行しているため、Windows で行き詰まった後、Linux を起動して、そこで解決策が見つかるかどうかを確認しました。
Linux には、NVMe ドライブを検査するために特別に構築された nvme-cli と呼ばれるコマンドライン ユーティリティがあります。これは、NVMe プロトコルと直接通信するため、汎用の SMART ツールではアクセスできない、または明確に公開されない診断データを取得できることを意味します。
私は次のように始めました。
sudo nvme smart-log /dev/nvme0
これにより、完全な SMART ログがドライブ コントローラーから直接取得され、CrystalDiskInfo が示した内容がより詳細に確認されました。利用可能なスペアは 100%、メディア エラーは 0、使用率は 23%、エラー ログ エントリ数は 6,605 で、Windows が示したのと同じ数でした。
しかし今回は、これらのエラーの内容を実際に検査することができました。
sudo nvme error-log /dev/nvme0
ログからは 16 個のエントリが返されました。エントリ 0 (フラグが立てられた 6,605 個のエラーすべてを占めるエントリ 0) のステータス フィールドは次のとおりでした。 0x2002、これをデコードすると、 コマンド内の無効なフィールド: 予約されたコード値、または定義されたフィールド内のサポートされていない値。
一方、エントリ 1 ~ 15 はすべて、エラー数が 0 で「正常に完了」を示しました。
簡単に言うと、私の SSD は大丈夫でした。メディア エラーやデータの整合性の問題はなく、物理 NAND 障害の兆候もありませんでした。 「エラー」は摩耗の兆候ではなく、通常の操作中のある時点でログに記録された無効なコマンドにすぎません。
NVMe SSD のエラーをテストすることもできます
Windows のセルフテストでは何も提供されませんでした
nvme-cli ユーティリティは、正常性データを読み取るだけでなく、ドライブ自体で組み込みの診断テストを実行することもできます。そこで、以下を使用して短いセルフテストを実行しました。
sudo nvme device-self-test /dev/nvme0 -s 1
次に、次のように結果を確認しました。
sudo nvme self-test-log /dev/nvme0
テストは正常に戻りました: 操作結果: 0。これは、ドライブが内部問題を検出せずに合格したことを意味します。

PC のパフォーマンスを間違ってテストしています。これが正しい方法です
合成ベンチマークも問題ありませんが、実際のベンチマークの方がはるかに優れています。
このツールを実行するために必ずしも Linux をインストールする必要はありません
Windows を使用していて、私のようにデュアルブート設定を実行していない場合でも、Linux をインストールしなくても nvme-cli を使用できます。
最も簡単な方法は、Ubuntu (または任意の Linux ディストリビューション) で起動可能な USB を作成し、それを PC に接続し、ライブ環境で起動することです。これにより、既存の Windows インストールに影響を与えることなく、USB から直接実行される完全な Linux セッションが得られます。そこから、nvme-cli をインストールして使用し、SSD の状態を検査したり、セルフテストを実行したり、エラー ログを確認したりできます。完了したら、通常どおり Windows を再起動してください。
関連情報は以下のリンクからご確認いただけます