![如何在 Linux CLI 中检查 SMART 之外的 HDD 健康状况?](https://linux22.com/image/1615011/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20CLI%20%E4%B8%AD%E6%A3%80%E6%9F%A5%20SMART%20%E4%B9%8B%E5%A4%96%E7%9A%84%20HDD%20%E5%81%A5%E5%BA%B7%E7%8A%B6%E5%86%B5%EF%BC%9F.png)
我有一台无头式家庭服务器,仅通过 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)