如何执行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中可用的cmdlets等健康检查工具来检查您的SSD的健康状况和性能。

让我们开始吧!

先决条件

本教程在安装在SSD上的Windows 10 Build 19042机器上运行所有演示,但其他版本的Windows PC也可以使用。

通过CrystalDiskInfo执行SSD健康检查

也许您正在寻找一种不让您看起来像极客的SSD健康检查方法。 如果是这样,请查看CrystalDiskInfo。 Crystal Disk Info是一个免费的GUI HDD/SDD实用程序软件,可在Crystal Mark网站上获取。

Crystal Disk Info有不同主题版本可供下载,但本教程使用标准版本。

通过单击CrystalDiskInfo来下载CrystalDiskInfo,如下所示。 现在运行您下载的安装程序,将CrystalDiskInfo安装到您的PC上。

Downloading Crystal Disk Info

从桌面启动CrystalDiskInfo,您将看到关于您的SSD的大量信息,如下所示。

根据您的固态硬盘(SSD)的健康状况,健康状态可能显示为绿色(良好)、黄色(警告)、红色(失败)或灰色(未知状态)。您可以看到下面显示固态硬盘的健康状态为未知,这表明固态硬盘需要进行固件更新,或者CrystalDiskInfo不支持控制器

您的固态硬盘制造商通常会提供固件更新以修复错误、提高性能或增强安全性。

Opening Crystal Disk Info for the first time

通过 PowerShell 进行固态硬盘健康检查

尽管 CrystalDiskInfo 可能涵盖了最常用的驱动控制器,但并非所有驱动器都得到支持。这种限制是转向 PowerShell 进行固态硬盘健康检查的主要原因之一。

如果您大部分时间都在 PowerShell 中运行命令,那么通过 PowerShell 进行固态硬盘健康检查是最适合您的。PowerShell 可让您检查固态硬盘的读写错误、磨损水平、百分比、温度以及其他一些重要细节。

让我们看看如何联合使用两个主要的 cmdlet(Get-PhysicalDiskGet-StorageReliabilityCounter)以更好地了解您的固态硬盘的健康状态。

  • Get-PhysicalDisk cmdlet检索所有对任何存储管理提供程序可见的物理磁盘。存储管理提供程序是提供集成存储管理服务的存储管理应用程序。
  • Get-StorageReliabilityCounter cmdlet允许您检查正在查询的磁盘/驱动器的计数器。

现在以管理员身份打开PowerShell,并运行Get-PhysicalDisk cmdlet本身以返回有关您的SSD的基本信息。

Get-PhysicalDisk

PowerShell可以方便地确定您的SSD是否处于良好状态,或者是否需要更换。正如您下面所见,SSD的状态为健康,这表明SSD正常工作且没有问题。

Retrieving a list of physical disks via PowerShell

检索SSD使用统计信息

Get-PhysicalDisk命令提供有关您的SSD的大量信息。但也许您只对显示您的SSD使用统计信息感兴趣,例如写入延迟开机时间

为了缩小返回的 SSD 信息范围,请将 Get-StorageReliabilityCounter cmdlet 管道传递给 Get-PhysicalDisk cmdlet,并将结果格式化为列表 (Format-List)。

Get-PhysicalDisk | Get-StorageReliabilityCounter | Format-List

以下是大部分重要的 SSD 健康信息。

Returning SSD Usage Statistics

也许您只想获取特定信息,比如 ReadErrorsTotalWear。如果是这样,您将会添加 Select cmdlet,如下所示。 Select cmdlet 允许您选择对象的指定属性。

现在运行以下 Get-PhysicalDisk 命令,通过指定所需信息 (ReadErrorsTotalWear) 来过滤输出列表。

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

下面,您只能看到指定的信息,ReadErrorsTotalWear

如果您看到任何两个字段中的数字不是 0,请考虑更换 SSD。

Filtering the output by selecting only ReadErrorsTotal and Wear objects

为多个 SSD 格式化健康检查输出

到目前为止,您已经学会了如何在单个 SSD 上执行 SSD 健康检查。但如果您有多个 SSD 怎么办?将命令封装在一个 For Each 循环 中将节省时间,并同时获取您需要的特定信息。

在下面的命令中,Get-PhysicalDisk cmdlet 读取由Get-StorageReliabilityCounter cmdlet 返回的一组对象(foreach)与Format-List cmdlet 连接起来。当处理完最后一个对象时,命令完成。

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 behaviorquery系统是否启用了TRIM(又名DisableDeleteNotify)。

fsutil behavior query DisableDeleteNotify

下面,您可以看到TRIM被禁用,因为返回值为零(0)。如果命令返回(1),则当前已启用TRIM。

Checking if TRIM is enabled or disabled via PowerShell

现在运行相同的先前命令以启用TRIM,但不是查询behavior的删除通知,而是将其set1

fsutil behavior set DisableDeleteNotify 1
Enabling TRIM

结论

在本教程中,您已经学会了如何通过CrystalDiskInfo和随附在您的Windows PC上的PowerShell执行SSD健康检查。现在,您可以确保避免SSD在不知不觉中失败的情况。

现在的问题是,您是否愿意依赖第三方软件执行SSD健康检查,还是坚持使用PowerShell?

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