Dmi*_*rov 7 hard-drive smart bad-blocks
经过 3 年的 24x7 服务,1TB 希捷 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.
Run Code Online (Sandbox Code Playgroud)
为了创建这样的分区,有必要获取重新映射的扇区列表。但是,操作系统看不到坏块。即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
Run Code Online (Sandbox Code Playgroud)
Spa*_*iff 16
你没有。
你去买另一个磁盘来替换它,除非你真的很喜欢丢失数据。
Dmi*_*rov 12
我要感谢你的建议,并分享我从实验中得到的一些细节。
简而言之,没有简单的方法来获得重新分配的扇区列表,甚至映射磁盘的统计方法也受到与固件逻辑对抗的严重阻碍。
为了测试驱动器,我badblocks -wv
使用默认块大小运行并监视过程中重新分配的扇区数。我做了几个观察。
我观察到写入磁盘开头时重新分配的扇区数量急剧增加。然后从最初的10G到700G没有任何变化。这可以解释为某些 RAID 整理数据存储在磁盘的开头,因此小地址区域的磨损高于磁盘的其余部分。
然后在一次错误后,磁盘将自身变为阻塞模式。那是每个 ATA 命令,甚至IDENTIFY DRIVE
返回ABRT
. 尽管重新分配部门的价值仍然为正。为了解释David Schwartz建议的这种行为,我假设保留扇区以某种方式分布在驱动器的地址空间中。这意味着驱动器可能有保留的扇区,但它的一部分可能用完了要重新映射的扇区。在这种情况下,固件只会阻止驱动器。
只有在对驱动器重新通电后,驱动器才会返回阻止模式。当旧驱动器让软件跟踪坏块并避免使用它们时,现代驱动器不会给这个机会。当固件认为它无法处理错误时,它会使驱动器无法使用。
通过将重新分配扇区的值降低到 02,我得出结论,该驱动器上有 2048 个保留扇区。
所谓的低级格式化,或将零写入驱动器的每个可访问扇区以从磁盘的不太可靠的部分重新分配扇区是行不通的,因为当驱动器用完保留扇区时,它会以某种方式改变处理错误的方式与不进行任何预测性故障分析并仅报告错误的传统驱动器相比,这使得它的使用方便得多。