在 24x7 服务 3 年后,1TB Seagate Barracuda ES.2 企业硬盘出现故障迹象。SMART 重新分配的扇区数很高。
维基百科文章表明,如果重新映射的扇区未被使用,该驱动器仍可用于不太敏感的用途,例如阵列外部的临时存储。
A workaround which will preserve drive speed at the expense of capacity
is to create a disk partition over the region which contains remaps and
instruct the operating system to not use that partition.
为了创建这样的分区,有必要获取重新映射扇区的列表。但是,操作系统看不到坏块。即badblocks
返回一个空列表。
有没有办法恢复重新分配的扇区列表?
编辑:此驱动器来自阵列。我们每年都有一些失败,只是把它们扔掉似乎是一种浪费。我正在考虑给拼盘中更好的部分第二次机会。
这是 SMART 报告现在的样子。
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda ES.2
Device Model: ST31000340NS
Serial Number: **********
Firmware Version: SN05
...
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 056 054 044 Pre-fail Always - 164293299
3 Spin_Up_Time 0x0003 099 099 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 14
5 Reallocated_Sector_Ct 0x0033 005 005 036 Pre-fail Always FAILING_NOW 1955
7 Seek_Error_Rate 0x000f 076 060 030 Pre-fail Always - 8677183434
9 Power_On_Hours 0x0032 072 072 000 Old_age Always - 24893
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 037 020 Old_age Always - 14
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Command_Timeout 0x0032 100 100 000 Old_age Always - 0
189 High_Fly_Writes 0x003a 097 097 000 Old_age Always - 3
190 Airflow_Temperature_Cel 0x0022 050 043 045 Old_age Always In_the_past 50 (0 6 50 32)
194 Temperature_Celsius 0x0022 050 057 000 Old_age Always - 50 (0 18 0 0)
195 Hardware_ECC_Recovered 0x001a 021 010 000 Old_age Always - 164293299
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 21
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 21
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
你不知道。
你去买另一个磁盘来替换它,除非你真的很想丢失数据。
我想感谢你的建议,并分享我从实验中得到的一些细节。
简而言之,没有简单的方法来获取重新分配扇区的列表,甚至映射磁盘的统计方法也因需要与固件逻辑对战而受到严重阻碍。
为了测试驱动器,我
badblocks -wv
使用默认的块大小运行并监视过程中重新分配的扇区数。我做了几个观察。我观察到写入磁盘开头时重新分配的扇区数量急剧增加。然后从最初的10G到700G没有变化。这可以解释为某些 RAID 管理数据存储在磁盘的开头,因此小地址区域的磨损高于磁盘其余部分。
然后在一次错误之后,磁盘将自身转为阻塞模式。那是每个 ATA 命令,甚至
IDENTIFY DRIVE
返回ABRT
。尽管重新分配的部门的价值仍然是积极的。为了按照David Schwartz的建议解释这种行为,我假设保留扇区以某种方式分布在驱动器的地址空间中。这意味着驱动器可能有保留扇区,但其中一部分可能用完扇区以重新映射。在这种情况下,固件只会阻止驱动器。只有在对驱动器进行电源循环后,驱动器才会退出阻塞模式。当旧驱动器让软件跟踪坏块并避免使用它们时,现代驱动器不会提供这种机会。当固件认为它无法处理错误时,它会使驱动器无法使用。
通过将重新分配扇区的值降低到 02,我得出结论,该驱动器上有 2048 个保留扇区。
所谓的低级格式化,或将零写入驱动器的每个可访问扇区以从磁盘不太可靠的部分重新分配扇区是行不通的,因为当驱动器用完保留扇区时,它会改变它处理错误的方式与不进行任何预测性故障分析并仅报告错误的传统驱动器相比,使用起来要方便得多。
如果您拥有价值低于驱动器成本的业务数据,则将它们用于此目的,如果没有,则将它们丢弃或将它们交给了解风险的部门人员。联系制造商,看看他们是否提供回收服务。
如果驱动器仍在保修期内,您可以先对其进行消毒后,通过他们的 RMA 流程将其退还给制造商以免费更换。(安全擦除将擦除整个驱动器,包括重新分配的或无法访问的扇区。)(我很惊讶没有人建议这样做。)否则,你按照@SpacemanSpiff 所说的去做并购买一个新驱动器。
实际上,增强型安全擦除更好,因为它也涵盖了保留块。
但是:如果真的有那么多坏道,那盘就是镇纸了。如果它不会重新分配它们或声明它们正常(当存在读取问题时会出现挂起的扇区。它们中的大多数是“软”错误,通常是由外部振动引起的。)
我有很多这样的驱动器,在更改起始位置后使用制造商的工具,如果那是大多数坏扇区所在的位置,并且驱动器容量减少 5-10%。如果它是一个不错的控制器和软件,它将使用未分配的作为备用。我运行了一个 WD 1800 减少到 160 GB 5 年没有问题,直到控制器被坏电源烧毁。我目前正在使用类似的三星电视帽,删除 100 GB 的 2 TB,传输流中的错误比驱动器希望引入的错误更多,所以这暂时不是问题。
Hitachi、Samsung 和 WD llf 工具似乎在重新映射方面做得很好,但对 Seagate 还不了解,因为它们要么被废弃,要么立即遭遇灾难性故障。
*现在有了终极启动盘,做这些事情就容易多了。
如果你真的想拿你在这个磁盘上的数据冒险(我不会)然后使用
dd
将磁盘完全写入零。这将导致驱动器重新分配挂起的扇区,并且磁盘的整个表面都可以使用。一阵子 ;-)