SSD の健康チェックの実行方法

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にインストールします。

Downloading Crystal Disk Info

デスクトップからCrystalDiskInfoを起動すると、以下のようにSSDに関する多くの情報が表示されます。

SSD の健康状態に応じて、状態は緑(良好)、黄色(注意)、赤(失敗)、またはグレー(不明な状態)に表示されます。以下に SSD の健康状態が不明であることが示されています。これは、SSD にファームウェアの更新が必要であるか、CrystalDiskInfo がコントローラをサポートしていないことを示しています。

SSD メーカーは通常、バグ修正、パフォーマンスの向上、またはセキュリティの強化のためのファームウェアの更新を提供します。

Opening Crystal Disk Info for the first time

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に関する基本情報を返します。

Get-PhysicalDisk

PowerShellを使用すれば、SSDが正常な状態かどうか、または交換が必要かどうかを簡単に確認できます。以下のように、SSDの状態がHealthyであることがわかります。これは、SSDが正常に動作していることを示し、問題がないことを示しています。

Retrieving a list of physical disks via PowerShell

SSDの使用統計の取得

Get-PhysicalDiskコマンドは、SSDに関する情報をいくつか提供します。しかし、おそらくあなたが興味を持っているのは、SSDの使用統計を示す情報だけです。たとえば、書き込みレイテンシ電源投入時間などです。

SSD情報を絞り込むには、Get-StorageReliabilityCounterコマンドレットをGet-PhysicalDiskコマンドレットにパイプし、結果をリスト形式(Format-List)でフォーマットします。

Get-PhysicalDisk | Get-StorageReliabilityCounter | Format-List

以下に、重要なSSDの健康情報のほとんどが表示されます。

Returning SSD Usage Statistics

特定の情報、例えばReadErrorsTotalWearのような情報のみを取得したい場合は、以下に示すようにSelectコマンドレットを追加します。 Selectコマンドレットを使用すると、オブジェクトの指定されたプロパティを選択できます。

必要な情報(ReadErrorsTotalWear)を指定して出力リストをフィルタリングするには、以下のGet-PhysicalDiskコマンドを実行してください。

Get-PhysicalDisk | Get-StorageReliabilityCounter | Select ReadErrorsTotal, Wear

以下に、ReadErrorsTotalWearの指定された情報のみが表示されます。

2つのフィールドのいずれかに0以外の数値が表示された場合は、SSDを交換することを検討してください。

Filtering the output by selecting only ReadErrorsTotal and Wear objects

複数のSSDのヘルスチェック出力のフォーマット

これまでに1つのSSDでSSDのヘルスチェックを実行する方法を学びましたが、複数のSSDがある場合はどうなりますか? コマンドをFor Eachループで囲むと、時間を節約して必要な特定の情報を同時に取得できます。

以下のコマンドでは、Get-PhysicalDiskコマンドレットがGet-StorageReliabilityCounterコマンドレットで返されたオブジェクトのセットを読み取り、Format-Listコマンドレットにパイプ処理されます。最後のオブジェクトの処理が完了すると、コマンドが完了します。

Get-PhysicalDisk | foreach { $_ | Get-StorageReliabilityCounter | Format-List }
Looping through all physical disks to check health via PowerShell

PowerShellには、SSDの健康状態をチェックするための定期的なタスクを設定するなど、幅広い機能が提供されています。その定期的なタスクは、結果をメールで送信することさえ可能であり、実際のシナリオにはより有益です。

TRIMを使用して未使用のデータブロックを消去する

SSDの健康状態を確認する方法を理解したら、SSDの高いパフォーマンスを維持する方法を理解することが重要です。SSD上で読み書き操作を行うと、フラッシュメモリセルが徐々に劣化していきます。

SSDの損傷を最小限に抑え、パフォーマンスを最大化する方法はありますか? もちろんあります! SSDを最適なパフォーマンスで維持するには、TRIMが設計されました。 TRIMは、ディスク内のどのデータブロックが目的を果たさなくなり、安全に消去できるかをオペレーティングシステムに通知します。

TRIMが有効なSSDからのデータ復旧は不可能です。データが永久に削除され、上書きされるためです。

SSDではTRIMがデフォルトで有効になっていますが、疑問がありTRIMが有効かどうかを確認したい場合は、以下のコマンドを実行してください。

fsutil behaviorコマンドを実行して、システムがTRIM(別名DisableDeleteNotify)を有効にしているかどうかをqueryします。

fsutil behavior query DisableDeleteNotify

以下のように、返される値がゼロ(0)であるため、TRIMが無効になっていることがわかります。コマンドが(1)を返した場合、TRIMが現在有効です。

Checking if TRIM is enabled or disabled via PowerShell

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

fsutil behavior set DisableDeleteNotify 1
Enabling TRIM

結論

このチュートリアルでは、Windows PCに搭載されているCrystalDiskInfoとPowerShellを使用してSSDのヘルスチェックを実行する方法を学びました。これで、SSDが知らずに失敗する状況を避けることができるでしょう。

今問題となるのは、SSDのヘルスチェックをサードパーティーのソフトウェアに頼るか、PowerShellに固執するかですか?

Source:
https://adamtheautomator.com/ssd-health-check/