smartctl重新测试坏扇区

smartctl重新测试坏扇区

我今天收到通知,我的硬盘将在 24 小时内出现故障。 “Reallocated_Sector_Ct”已经在 3000 左右,并且在过去几个小时内已升至 4004。但是,几周前我将机箱翻过来,并尝试将其恢复直立。从那时起,“Reallocated_Sector_Ct”就没有上升,尽管当前有很多磁盘活动,因为我将重要数据 tar/zipping 到另一个驱动器。

我知道硬盘无法从侧面读取是一个问题,但如果将硬盘直立放置似乎暂时可以解决问题,至少我不必那么惊慌。

有没有办法可以对这些“坏扇区”进行重新测试,如果通过测试就将它们标记为良好?我想看看在盒子直立的情况下重新测试后有多少“真正”的坏扇区(当然我会在备份完成后这样做)。

我正在使用 Debian,如果这有什么区别的话。

答案1

我只能附议冯布兰德的答案。在过去的一个月里,我看到至少有两个 HDD 在 SMART 中发生预故障后死亡。

然而,您最好的选择可能不是 SMART 本身,而是badblocks实用程序。

您可以badblocks读取和重写整个磁盘,从而强制您的 HDD 重新分配挂起的扇区。这通常效果很好。

如果您没有时间运行badblocks(在较大的磁盘上可能需要几天时间),您可以尝试读出 SMART 错误日志(smartctl -x /dev/<hdd>并获取损坏扇区的列表。

然后您可以使用hdparm读取该扇区:

hdparm --read-sector <sector> /dev/<hdd>` 

如果失败,您可以使用强制重新映射

hdparm --yes-i-know-what-i-am-doing --write-sector <sector> /dev/<hdd>` 

这工作得很好(至少对于 WD-Green 驱动器来说,你不能告诉其他驱动器吗)

如果您有dmesg失败扇区的日志消息,那就更容易了。

sectors=$(dmesg | grep <hdd> | grep sector | awk '{print $8}')

for s in $sectors; do <hdparm stuff>; done

在再次安装卷之前执行强制fsck

fsck -f -y /dev/<hdd> 

假设昨天你的动力已经耗尽!

祝你好运 :)

答案2

关闭机器,并获取替换磁盘现在!硬盘中的坏扇区往往呈指数级增长,大量数据丢失迫在眉睫。

答案3

我不认为可以重新测试驱动器已标记为损坏并重新映射的扇区。这将是“将其送回保修”领域。 (例如,理论上供应商可能拥有可以验证和重置此类驱动器的工具)。

相关内容