我能证明SSD坏了吗?

use*_*951 2 ssd

我的SSD坏了吗?

我已经要求更换这么多 SSD,我不想再问了。但如果 SSD 确实坏了,仅仅一次服务器宕机就会让我损失 500 美元左右。

那么,如何确定SSD确实坏了呢?

我可以像在Windows中那样重新格式化硬盘吗?磁盘已挂载。

之前松动的引脚使服务器重新启动次数过多。看来它损坏了那里的所有SSD。

/bin/ls: cannot access cache-zch-5666-cache.txt: Input/output error
/bin/ls: cannot access cache-zch-4970-cache.txt: Input/output error
/bin/ls: cannot access cache-zch-4782-cache.txt: Input/output error
./   cache-zch-4782-cache.txt  cache-zch-5666-cache.txt
../  cache-zch-4970-cache.txt
root@host [/home2/investgr1/public_html/hello/cache/zch]# rm *
rm: cannot remove `cache-zch-4782-cache.txt': Input/output error
rm: cannot remove `cache-zch-4970-cache.txt': Input/output error
rm: cannot remove `cache-zch-5666-cache.txt': Input/output error
root@host [/home2/investgr1/public_html/hello/cache/zch]#
Run Code Online (Sandbox Code Playgroud)

gol*_*cks 5

badblocks -n -v在一个或多个分区上运行。我确信这在 SSD 上没有多大意义(块是虚拟的,SSD 有自己的坏块管理),但如果设备有问题,坏块进程可能会触发它们。

也就是说,如果badblocksSSD上发现了坏块,那么SSD就坏了。

我没有找到任何参考文献来支持这篇论文,但这是我的推理:

  • badblocks -n对整个分区进行低级读写测试。
  • SSD内部管理自己的坏块,也使用磨损均衡来分配使用;发送到系统的块地址是虚拟的。因此,这些块都不应被测试为坏的,如果坏了,则驱动器的某些功能会失败。

正如沃伦·杨(Warren Young)所说,这里很难证明是负面的,所以仅仅因为这个测试通过并不意味着驱动器没有损坏。

请注意,您必须首先卸载分区,这意味着如果您的根文件系统位于 SSD 上,您将必须使用 Live CD 或其他东西。


War*_*ung 5

dmesg首先,按照我在上一个问题中建议的方式检查输出。如果内核在与驱动器通信时遇到问题,则会在那里报告。

这并不一定表明驱动器有问题。RAM 是另一个常见的罪魁祸首,因此请进行内存测试。我使用UBCD来实现此目的,但还有很多替代方案。

如果内存测试结果正常并且没有错误dmesg,但仍然出现 I/O 错误,则驱动器上可能存在坏扇区。要确定这一点,请在磁盘上运行fsck -c或。fsck -cc第一个测试对于 SSD 更好,因为它是只读测试,但它无法找到或修复与使用-cc.

最终,你无法证明负面的,所以你永远不能绝对自信地说“这个SSD没有坏”。

fsck更糟糕的是, (或)测试可能badblocks没有出现错误,但症状却消失了。这是因为现代可重写磁盘驱动器具有自我修复功能,当您可以向驱动器显示存在问题时,该功能就会启动。也就是说,此类设施通常会阻止您首先看到坏扇区的影响,因此,如果坏扇区确实是问题所在,则可能意味着驱动器的备用扇区池已用完。

  • “badblocks”可能不是在 SSD 上释放的最佳工具,因为在内部,单个(小 512 字节)“badblocks”级别块的读写周期将导致 SSD 重新分配/擦除大块(512 KiB) )SSD级块一次又一次,导致过度磨损(参见[SSD剖析](http://www.anandtech.com/show/2738/5)。也许应该设置块大小:` badblocks -b 524288`。一个超级简单的测试是尝试使用 `dd if=/dev/sda of=/dev/null` 读取整个 SSD。也可能有特定于供应商的工具,请检查互联网。我的三星诊断程序没有但不要吠叫。 (4认同)