smartctl 报告第一个错误位置的不同扇区

smartctl 报告第一个错误位置的不同扇区

我正在测试一个旧的硬盘,并且不太理解smartctl有关磁盘自检的输出:

$ sudo smartctl -d sat -x /dev/sdd
...
SMART Extended Self-test Log Version: 1 (1 sectors)
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      9691         -
# 2  Extended offline    Completed: read failure       90%      9691         7948857160
# 3  Short offline       Completed: read failure       90%      9687         7948857160
# 4  Short offline       Completed without error       00%       113         -
...

$ sudo smartctl -d sat -a /dev/sdd
...
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      9691         -
# 2  Extended offline    Completed: read failure       90%      9691         3653889864
# 3  Short offline       Completed: read failure       90%      9687         3653889864
# 4  Short offline       Completed without error       00%       113         -
...

smartclt -a和报告的行业之间有什么区别smartctl -x

答案1

返回的数字smartctl -a只是被截断为 32 位的正确 LBA。不要smartctl -a在大磁盘上使用。 smartctl -a根据联机帮助页检索 SMART 自检日志,同时smartctl -x检索 SMART扩展自检日志。扩展自检允许更长的日志并容纳 48 位 LBA。常规自检日志仅支持32位LBA字段。这意味着smartctl -a永远不应该将其用于大于 2TiB 的驱动器。

答案2

我使用 smartctl (smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.10.0-13-amd64]) 对 4TB Western Digital Red (WDC WD40EFRX-68WT0N0) 遇到同样的问题。

我的驱动器上有一个坏块,由 SMART 监控报告。

smartctl -a /dev/sdc 报告3424096344

然而:

smartctl -x /dev/sdc 报告 7719063640(这是 OpenMediaVault SMART 监控报告的值)

查看二进制文件中的这些值:

7719063640: 0001 1100 1100 0001 0111 1001 0000 0101 1000

3424096344:      1100 1100 0001 0111 1001 0000 0101 1000

您可以看到二进制文件除了顶部半字节之外都匹配。可能是 int32 与 int64 问题。

但是,不清楚这是驱动器还是 smartctl 工具。

正确的值当然是7719063640。我使用了这个值和优秀的指南https://www.smartmontools.org/wiki/BadBlockHowto

重写该块并清除驱动器报告的 SMART 错误。

相关内容