此硬盘错误消息是什么意思:“当前待处理扇区计数...”?

此硬盘错误消息是什么意思:“当前待处理扇区计数...”?

我从 Linux Mint 上的 Disk Utility 中获取了以下信息:

Current Pending Sector Count:

Normalized: 200
Worst:      200
Threshold:  0
Value:      22 sectors

这是什么意思?可以修复该错误吗?

答案1

这意味着有22个扇区无法读取。下次写入这些扇区时,如果无法正确写入,它们将被重新映射到备用扇区。您可以使用该badblocks实用程序来定位坏扇区,并dd写入它们:

sudo badblocks -b 512 /dev/sda

对于列出的每个扇区,首先验证它是否无法读取:

sudo dd if=/dev/sda of=/dev/null bs=512 count=1 iflag=direct skip=[sector]

这应该会因 IO 错误而失败。如果是这样,请继续编写:

sudo dd if=/dev/zero of=/dev/sda bs=512 count=1 oflag=direct seek=[sector]

使用 badblocks 给定的扇区号作为 [sector]。执行此操作后,再次检查 SMART 统计信息,待处理计数应为零。如果写入失败并且从备用池重新分配扇区,则重新分配的计数可能会增加。如果发生这种情况,您可能需要更换磁盘。如果没有,那么一切都已修复。

答案2

当前挂起的扇区数是磁盘当前正在跟踪但无法读取的扇区数。幸运的话,它们将被写入,然后磁盘将重新映射它们。但在成功读取它们或计算机尝试写入它们之前,它无能为力。这可能是更多问题即将出现的迹象。

您可以阅读更多有关聪明的在维基百科上。

答案3

也许重新映射各个扇区的更安全方法是使用hdparm

$ sudo hdparm --read-sector 12345678 /dev/sdx # verify that there is a read error
$ sudo hdparm --yes-i-know-what-i-am-doing --write-sector 12345678 /dev/sdx

与 不同的是ddhdparm它设计用于单个扇区,因此由于拼写错误而导致一半磁盘损坏的可能性较小。

除了 之外badblocks,内核日志 ( dmesg | grep sector) 或 SMART 报告 ( smartctl -x) 中还会报告已知的不可读扇区。如果此类扇区的数量如此之多,以至于手动重新映射它们是不切实际的,我实际上会考虑更换 HDD,因为这是即将发生永久性故障的迹象。

相关内容