A Solid State Drives (SSDs) performs much faster than the usual Hard Disk Drive (HDD) you get when buying a PC or laptop. An SSD offers lesser chances of failure, but as all drives age, failure is inevitable. So how would you avoid loss of data? There are tools you can use for an SSD health check and even extend its life.
この記事では、Crystal Disk InfoやPowerShellで利用可能なcmdletなどのヘルスチェックツールを使用して、SSDの健康状態とパフォーマンスを確認する方法を学びます。
さあ、始めましょう!
前提条件
このチュートリアルは、SSDにインストールされたWindows 10ビルド19042マシン上でデモを実行しますが、他のバージョンのWindows PCでも動作します。
CrystalDiskInfoを使用したSSDヘルスチェックの実行
おそらく、ギークっぽく見えない方法でSSDのヘルスチェックを実行する方法を探しているのであれば、CrystalDiskInfoをご覧ください。 Crystal Disk Infoは、Crystal Markのウェブサイトで入手可能な無料のGUI HDD/SDDユーティリティソフトウェアです。
さまざまなテーマのCrystal Disk Infoのバージョンがダウンロードできますが、このチュートリアルでは標準バージョンを使用します。
以下のように表示されるCrystalDiskInfoをクリックして、CrystalDiskInfoをダウンロードします。ダウンロードしたインストーラを実行して、CrystalDiskInfoをPCにインストールします。

デスクトップからCrystalDiskInfoを起動すると、以下のようにSSDに関する多くの情報が表示されます。
SSD の健康状態に応じて、状態は緑(良好)、黄色(注意)、赤(失敗)、またはグレー(不明な状態)に表示されます。以下に SSD の健康状態が不明であることが示されています。これは、SSD にファームウェアの更新が必要であるか、CrystalDiskInfo がコントローラをサポートしていないことを示しています。
SSD メーカーは通常、バグ修正、パフォーマンスの向上、またはセキュリティの強化のためのファームウェアの更新を提供します。

PowerShell を使用して SSD の健康状態をチェックする
CrystalDiskInfo が最も一般的に使用されるドライブコントローラをカバーしているかもしれませんが、すべてがサポートされているわけではありません。この制限は、SSD の健康状態を確認する際に PowerShell に頼る主要な理由の1つです。
ほとんどの時間を PowerShell でコマンドを実行している場合は、PowerShell を使用して SSD の健康状態をチェックすることが最適です。PowerShell を使用すると、SSD の読み書きエラー、ウェアレベリング、パーセント、温度など、重要な詳細を確認できます。
SSD の健康状態をよりよく把握するために、主要な 2 つの cmdlet(Get-PhysicalDisk
および Get-StorageReliabilityCounter
)を併用する方法を説明します。
Get-PhysicalDisk
コマンドレットは、すべての物理ディスクを取得しますストレージ管理プロバイダーに表示されます。ストレージ管理プロバイダーは、統合されたストレージ管理サービスを提供するストレージ管理アプリケーションです。Get-StorageReliabilityCounter
コマンドレットを使用して、クエリされているディスク/ドライブのカウンターを確認できます。
今、管理者としてPowerShellを開いて、Get-PhysicalDisk
コマンドレットを単独で実行して、SSDに関する基本情報を返します。
PowerShellを使用すれば、SSDが正常な状態かどうか、または交換が必要かどうかを簡単に確認できます。以下のように、SSDの状態がHealthyであることがわかります。これは、SSDが正常に動作していることを示し、問題がないことを示しています。

SSDの使用統計の取得
Get-PhysicalDisk
コマンドは、SSDに関する情報をいくつか提供します。しかし、おそらくあなたが興味を持っているのは、SSDの使用統計を示す情報だけです。たとえば、書き込みレイテンシや電源投入時間などです。
SSD情報を絞り込むには、Get-StorageReliabilityCounter
コマンドレットをGet-PhysicalDisk
コマンドレットにパイプし、結果をリスト形式(Format-List
)でフォーマットします。
以下に、重要なSSDの健康情報のほとんどが表示されます。

特定の情報、例えばReadErrorsTotal
とWear
のような情報のみを取得したい場合は、以下に示すようにSelect
コマンドレットを追加します。 Select
コマンドレットを使用すると、オブジェクトの指定されたプロパティを選択できます。
必要な情報(ReadErrorsTotal
とWear
)を指定して出力リストをフィルタリングするには、以下のGet-PhysicalDisk
コマンドを実行してください。
以下に、ReadErrorsTotalとWearの指定された情報のみが表示されます。
2つのフィールドのいずれかに0以外の数値が表示された場合は、SSDを交換することを検討してください。

複数のSSDのヘルスチェック出力のフォーマット
これまでに1つのSSDでSSDのヘルスチェックを実行する方法を学びましたが、複数のSSDがある場合はどうなりますか? コマンドをFor Eachループで囲むと、時間を節約して必要な特定の情報を同時に取得できます。
以下のコマンドでは、Get-PhysicalDisk
コマンドレットがGet-StorageReliabilityCounter
コマンドレットで返されたオブジェクトのセットを読み取り、Format-List
コマンドレットにパイプ処理されます。最後のオブジェクトの処理が完了すると、コマンドが完了します。

PowerShellには、SSDの健康状態をチェックするための定期的なタスクを設定するなど、幅広い機能が提供されています。その定期的なタスクは、結果をメールで送信することさえ可能であり、実際のシナリオにはより有益です。
TRIMを使用して未使用のデータブロックを消去する
SSDの健康状態を確認する方法を理解したら、SSDの高いパフォーマンスを維持する方法を理解することが重要です。SSD上で読み書き操作を行うと、フラッシュメモリセルが徐々に劣化していきます。
SSDの損傷を最小限に抑え、パフォーマンスを最大化する方法はありますか? もちろんあります! SSDを最適なパフォーマンスで維持するには、TRIMが設計されました。 TRIMは、ディスク内のどのデータブロックが目的を果たさなくなり、安全に消去できるかをオペレーティングシステムに通知します。
TRIMが有効なSSDからのデータ復旧は不可能です。データが永久に削除され、上書きされるためです。
SSDではTRIMがデフォルトで有効になっていますが、疑問がありTRIMが有効かどうかを確認したい場合は、以下のコマンドを実行してください。
fsutil behavior
コマンドを実行して、システムがTRIM(別名DisableDeleteNotify
)を有効にしているかどうかをquery
します。
以下のように、返される値がゼロ(0)であるため、TRIMが無効になっていることがわかります。コマンドが(1)を返した場合、TRIMが現在有効です。

TRIMを有効にするには、同じ前のコマンドを実行し、削除通知のbehavior
をquery
する代わりに、1
にset
します。

結論
このチュートリアルでは、Windows PCに搭載されているCrystalDiskInfoとPowerShellを使用してSSDのヘルスチェックを実行する方法を学びました。これで、SSDが知らずに失敗する状況を避けることができるでしょう。
今問題となるのは、SSDのヘルスチェックをサードパーティーのソフトウェアに頼るか、PowerShellに固執するかですか?