Ubuntu 20.04 下 Seagate IronWolf 硬盘出现周期性点击声

use*_*275 3 sound mount hard-drive

我有三个新的 Seagate IronWolf Pro HDD。他们工作得很好:

  • 我可以写和读它们
  • 他们正在通过所有测试

我遇到的一个问题是它们在闲置时发出令人担忧的声音。声音是重复的“粘性粘性...”,每个粘性间隔约 0.5 秒。“粘性”太强了,我能感觉到桌子上的振动。同样,驱动器工作正常,如果我将大文件复制到这些驱动器,点击声就会消失,似乎驱动器不知道如何空闲。安装驱动器后 1 或 2 秒可能会出现噪音。

以下是我迄今为止为解决该问题所做的努力:

  • 磁头停放过多:我发现的第一个解释是 Ubuntu 端的电源管理导致磁头停放过多,可以通过 解决hdparm -B254 /dev/sda,但我的驱动器不支持此命令。

  • 使用 hdparm 强制驱动器处于空闲状态:我尝试了诸如hdparm -y /dev/sda,之类的命令hdparm -S0 /dev/sda。每次注册命令时,咔嗒声都会停止一秒钟,然后立即恢复。

  • 停用 SMART 监控:我发现一些驱动器监控记录导致了一些噪音问题,因此我将其停用,但没有成功。

  • 升级固件:我考虑过升级固件,但我似乎已经拥有最新的固件。

  • 停用 EPC / Idle_a / Idle_b:使用 Seagate 名为 SeaChest 的工具,我可以修改给定驱动器的电源设置。到目前为止,我尝试禁用不同的空闲模式、禁用 EPC,但没有成功。

我有另一个较小的台式机,具有相同的操作系统 (Ubuntu 20.04),但希捷硬盘不同(希捷 Exos 而不是希捷 IronWolf)。另一个驱动器按预期工作,因此问题可能出在 Ubuntu 和 Ironwolf 驱动器之间的兼容性上。

知道这是否是一个已知问题以及是否有办法解决这个问题?我不敢相信这种怠速声音对驾驶来说是件好事。

编辑1:

我在 Ubuntu 18 上重现了相同的行为,在我的 Seagate Exos 当前顺利运行的同一系统上。

我在硬盘支撑架上加了一些橡胶垫,现在我几乎听不到声音了。我仍然不完全确定这是正常的。我不明白为什么希捷 Exos 超级安静,而 IronWolf Pro 却不然。我尝试联系 Seagate,但由于某种原因无法联系到他们。

编辑2:

我仍然可以区分周期性的点击噪音,所以我最终编写了一个愚蠢的 python 脚本来继续将内容写入磁盘:

import time

if __name__ == "__main__":
    while True:
        with open("./stupid_file.txt", "w") as fs:
            for _ in range(1000000):
                fs.write("This is the last time I'm buying an IronWolf HDD. \n")
                time.sleep(0.001)

Run Code Online (Sandbox Code Playgroud)

我在安装驱动器的地方运行:python3 dumb_script.py

我仍然可以听到一些微弱的咔哒声,但至少现在它不是周期性的......我仍然感兴趣是否有人可以确认这种咔哒声是否正常。

编辑3:

即使没有运行脚本,点击声也完全停止了。我不知道为什么,但现在一切都很好。这可能只是硬盘驱动器的初始化阶段吗?

解决方案:

@Levente 是对的,这是由于 ext4 的惰性初始化造成的,请参阅他的答案以获取解决方案。

Lev*_*nte 5

这是一个可能的解释,以及一个可行的方法:

\n
\n

“这可能只是硬盘的初始化阶段吗?” \xe2\x80\x94 对,我相信它被称为 ext4 文件系统(“惰性”)初始化。当您为 ext4 文件系统格式化磁盘时,默认行为是初始格式化速度很快,但初始日志记录需要稍后在空闲时间内完成;它可以持续几个小时(或者谁知道多久......)。

\n

但是可以通过预先进行初始化的方式来启动 ext4 文件系统:这样过程将花费更长的时间,但之后不需要后续的“惰性”过程。

\n

进程识别:

\n

我不记得日记过程是如何调用的,但我现在至少发现我已经确定了罪魁祸首iotop(并在稍后进行了网络搜索,以找到有关懒惰及其对策的信息):

\n
sudo apt install iotop\nsudo iotop -o\n
Run Code Online (Sandbox Code Playgroud)\n

更新:这篇文章中,我了解到该进程可能被调用ext4lazyinit

\n

别再偷懒了:

\n

因此,当我发现我的全新磁盘延迟初始化时,我没有等到它完成;相反,在卸载分区后,我根据以下参数重新在其上重新创建了文件系统:

\n
sudo apt install iotop\nsudo iotop -o\n
Run Code Online (Sandbox Code Playgroud)\n

(郑重声明,这会破坏您已复制到分区上的所有数据。)

\n