如果我有损坏的文件并且想检测问题是否出在 Flash NAND SSD 上或者安装是否只是损坏,扫描坏扇区是否有帮助,或者这是否仅对普通硬盘驱动器有用?
答案1
一般来说,如果当前位置即将变坏,SSD 的固件应该负责重新定位您的数据。但是。没有什么是 100% 可靠的,包括闪存固件重新分配算法。我想说 SSD 上出现真正坏扇区(例如,您写入数据,但无法读回,或者读回的不是您写入的内容)的可能性非常低,但扫描坏扇区也不会有什么坏处。
如果 SSD 上确实出现大量坏扇区,我就不会使用该 SSD,因为这意味着其固件或闪存 NAND 本身存在严重问题。
答案2
我首先建议查询驱动器的 SMART 参数。例如,驱动器可能已经耗尽了其备用内存块。您需要使用您可以轻松获得的最新版本的 smartmontools(一个简单/免费的来源:Ubuntu LiveCD。)
Smartmontools 还可以激活驱动器自检并显示设备的智能错误日志(如果有)。
如果 SMART 显示没有问题,那么大概不是“媒体”问题(即坏的 NAND 单元)。损坏可能是由固件问题引起的;闪存驱动器经常会出现许多固件修订,因此请检查驱动器是否有更新的固件。
回答您最初的问题:是的,您可以在 SSD 上运行坏块(或类似的东西)。
答案3
首先备份驱动器上的所有重要数据。
您可以检查智能的输出,它应该报告重新分配的扇区数、磨损均衡数、程序失败数、擦除失败数、无法纠正的错误数等内容。
您的 SSD 制造商可能有一些更具体的驱动测试软件,可能会为您提供更多数据。
您确切知道哪些文件已损坏吗?是否有任何规律(只有新写入的文件?只有旧文件?随机的?如果您下载一个大文件(可能是一些 Linux 安装 cd/dvd 映像),并计算其校验和,它是否与 dl 页面上发布的校验和相匹配?)?
如果这些方法都不能给出任何结论,那么还有更具破坏性的测试方法。它们确实有一些缺点。首先,它们会破坏驱动器上当前的所有数据,其次,有些方法可能非常慢,第三,有些方法会耗尽每个驱动器有限的写入量(对于大多数新驱动器来说,这应该不是什么大问题,但仍然如此)。我会使用制造商的软件重置驱动器(清除所有单元,使其看起来像新驱动器),运行坏块(破坏性写入测试),再次重置驱动器,将几个具有已知校验和的文件放在驱动器上,然后比较校验和。
在进行破坏性测试之前,您最好先测试一下您的内存和 CPU,因为内存/CPU 错误也会损坏文件,但这些测试不会破坏任何数据,也不会对您的硬件造成太大的磨损。
如果您在任何测试中失败,请发布错误位置和错误原因,如果没有,则驱动器似乎正常,但我仍然会使用智能方式密切关注它,创建其上所有文件的校验和,并时不时地对它们进行比较以查找任何不应该存在的更改。