如何在 Linux CLI 中检查 SMART 之外的 HDD 健康状况?

如何在 Linux CLI 中检查 SMART 之外的 HDD 健康状况?

我有一台无头式家庭服务器,仅通过 SSH 进行控制。它运行最新版本的 Arch Linux(内核 5.4.15)。对于存储,我有一个 LVM 卷组,横跨 2 个物理硬盘,每个 2TB,品牌相同,型号相同,但使用年限不同。我可能在不久的将来会扩展存储。

我正在寻找一个实用程序来定期测试它们的健康状况,我不信任 SMART,因为大多数时候当它失败时,已经太晚了。因此,smartctl以及任何完全依赖它的实用程序都不符合我的需求。我正在寻找类似的东西硬盘扫描或者维多利亚但适用于 Linux CLI 而不是 Windows GUI。

考虑到上述情况,我正在寻找的实用程序应该:

  • 有一个 Linux 版本
  • 要么没有 GUI,要么是可选的,也可以选择从命令行工作
  • 不依赖 SMART,而是自行测量所检查设备的每个块的读/写速度

有什么建议么?

答案1

有一个 badblocks 实用程序。

https://wiki.archlinux.org/index.php/badblocks

这可以通过有效擦除设备的破坏性写入模式(进行备份!)或非破坏性读写模式(也建议备份!)和只读模式来完成。

无损检测:

# badblocks -nsv /dev/device

Checking for bad blocks in non-destructive read-write mode
From block 0 to 488386583
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

The -n option signifies a non-destructive read-write test. 

这是一个慢的测试;它基本上会在检查期间写入两倍的磁盘大小。我不会经常运行它。确保检查磁盘的块大小并通过它 -b 4096(另外,我已经很久没有使用过这个实用程序了,所以在尝试之前请仔细阅读 wiki)

相关内容