问题

问题

问题

badblocks固态混合硬盘 (SSHD) 的读写模式是否与硬盘驱动器 (HDD) 一样有效?

进一步来说:

  • 如果设备的所有块都以该模式写入,它是否允许控制器识别任何坏块?

背景

Ubuntu 手册页:badblocks - 搜索设备中的坏块

我认为非破坏性的只读SSHD 块测试:

  • 会单独从 SSD 级别读取一些块
  • 因此,可能会对 HDD 级别的状况产生误导性的概述。

我期望读写测试更有效。这假设所有写入最终都会刷新到 HDD。

例子

-n具有非破坏性读写模式选项:

ubuntu@ubuntu:/dev$ sudo badblocks -n -s -v /dev/sda
Checking for bad blocks in non-destructive read-write mode
From block 0 to 732574583
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern:   0.23% done, 1:47 elapsed
                               0.92% done, 7:09 elapsed
                               1.00% done, 7:46 elapsed
                              25.13% done, 3:49:32 elapsed
                              25.13% done, 3:49:33 elapsed
                              25.13% done, 3:49:34 elapsed
                              25.13% done, 3:49:35 elapsed

有关的

在 Ask Different 中:

答案1

对于主题巫术的道歉,但我在搜索类似的答案时偶然发现了这个问题。

根据来自 AnandTech 的评论,Seagate 的 Momentus 和 FireCuda 等 SSHD 驱动器不使用 SSD 缓存进行写入操作;只使用读取操作。SSD 读取缓存应仅填充已从盘片多次请求的扇区,因此在传递过程中不应使用badblocks。因此,破坏性读/写badblocks测试应以与普通机械驱动器完全相同的方式运行。

我唯一担心的是不太可能出现的情况,即某个扇区确实发生故障,但缓存在 NAND 层中。对该扇区的读取请求不会到达主轴,而是会从 SSD 缓存中获取。不过,我再次认为这在运行过程中是不可行的badblocks

为了安全起见,我还是会将其与 SMART 扩展或传输测试配对,并检查重新分配的扇区。如果您还不知道,请注意,在 Seagate 硬盘上,寻道错误率、原始读取错误率和硬件 ECC 已恢复属性仅在使用最高 16 位时才指示问题;低 32 位的波动是正常的,并指示驱动器的使用值(例如,执行的寻道和读取次数)。

相关内容