如何强制重新映射SMART C5中报告的扇区(当前待处理的扇区数)?


38

我的三星HM640JJ硬盘驱动器(在HP Pavilion dv6笔记本电脑中)的SMART C5值是“黄色状态=注意”

C5昨天是10,今天是21。

C4 (Reallocation Event Count) = 005 (Reallocated Sectors Count) = 0

如何强制固件重新分配它们?

  • 我删除了分区,再次重新创建了分区并格式化了整个驱动器。
  • 我跑了 chkdsk /r /f
  • 我运行了BIOS磁盘检查实用程序和其他诊断/修复工具

我在第2层使用启动磁盘spinrite6来做到这一点。... grc.com/intro.htm
摩押

Answers:


118

简短答案:为该扇区写一些新内容(甚至为零-长格式也是如此)。

长答案

如今,硬盘驱动器试图从主机中隐藏坏扇区。主机仅要求驱动器返回特定扇区号的内容。通常,驱动器读取该扇区,然后将其返回给主机,一切正常。

硬盘驱动器知道读取的值是否有效,因为驱动器使用纠错码(ECC)来验证读取的内容是否正确。如果驱动器检测到该扇区的内容无效,它将重试读取。希望是,如果仅再次读取它,则可能会获得正确的扇区内容。它会一直重试,直到获得一个合适的值,或者达到其时间限制(正式称为命令完成时间限制,即CCTL为止

在这些重试过程中,驱动器将显示为已耗尽。因为它不再响应命令

备用部门

大多数现代驱动器包含许多“备用”扇区(例如1,024个备用扇区)。如果驱动器识别出一个坏扇区,它将停止使用它。任何读取或写入该损坏扇区的请求都将透明地重定向到备用扇区。标记出坏扇区,然后将其数据重新分配给备用扇区,这称为“重新分配事件”。重新分配的扇区总数(以及您已用完的空闲扇区数)就是“ 重新分配的扇区数”

在本例中,从我自己的一个硬盘驱动器中发现有64个扇区损坏。这意味着已使用了驱动器的64个备用扇区:

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ===
(05) Reallocated Sector Count  192      192    140        64

在同一硬盘上,有4个重新分配事件。这意味着在四种情况下,驱动器将扇区标记为坏扇区,而是使用备用扇区。

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ===
(05) Reallocated Sector Count  192      192    140         64
(C4) Reallocated Event Count   196      196    0            4

如果它永远无法读取数据怎么办?

这些重新读取扇区,消耗备件的操作在计算机的后面都是一件好事。这意味着主机操作系统不必处理出现故障的扇区的问题。驱动器本身可以自行处理这些细节。

Bonus Chatter:在过去,您的硬盘驱动器随附有固定的标签。该标签包含工厂缺陷清单 ; 驱动器上所有已知坏点的列表。

在此处输入图片说明

如果执行了驱动器的低级格式化,则必须使用工具键入坏点的所有圆柱头扇区位置。
SCSI驱动器有一个命令,IOCTL_DISK_REASSIGN_BLOCKS告诉操作系统在检测到它后在驱动器上重新分配坏点。在IDE驱动器中,这一切都是自动发生的,无需操作系统干预。

理想情况下,驱动器将识别出该扇区出现故障,将数据移至备用扇区,而不再使用原始扇区。但是,如果驱动器无法成功读取扇区,会发生什么?

这是什么Pending Sectors。驱动器已检测到某个扇区发生故障,需要重新映射为备用磁盘。但是,只有成功读取数据,它才能这样做。当驱动器知道某个扇区损坏并需要重新映射时,它却无法做到这一点,因为它正在等待从该扇区中读取良好的数据:这称为“ 待处理扇区数”

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ====
(05) Reallocated Sector Count  192      192    140          64
(C4) Reallocated Event Count   196      196    0             4
(C5) Current Pending Sector    100      100    0             2

我的硬盘驱动器具有2个扇区,该驱动器可以识别为坏扇区,但目前无法重新分配。如果要读取这些“挂起的扇区”之一,则驱动器可能会重试(以及重试和重试),并最终将读取错误返回给主机操作系统:

在此处输入图片说明

放弃未决的部门,它将重新分配

驱动器最终可以通过两种方式重新分配该扇区并消耗另一个备用扇区:

  • 终于得到了很好的阅读
  • 你不在乎这个领域

如果驱动器最终读取了该扇区,则它知道可以重新分配该扇区。

驱动器可以重新分配该扇区的另一种方法是,让它知道该扇区的内容无关紧要;您不再关心其中的内容。你是怎样做的?

通过为该行业写一些新东西。

每当您读取或写入硬盘驱动器上的一个扇区时,都必须读取/写入整个 512字节的扇区1。您不能只写一部分扇区。当OS将数据写入扇区时,它必须指定整个 512字节。如果您告诉硬盘驱动器您希望这些新内容替换该坏扇区,则驱动器会知道您根本不在乎坏扇区中的当前内容。然后,它可以将坏扇区重新分配给其中一个备用扇区,并且该扇区不再处于Pending状态

这就是为什么当人们要求拥有一些Current Pending Sectors硬盘时,常见的建议是使用一种工具(例如Western Digital的Data LifeGuard)将全零写入驱动器。

在此处输入图片说明

通过向驱动器上的每个扇区写入零,您就告诉驱动器它最终可以重新分配所有那些讨厌的未决扇区。擦拭后,您所有的一切Pending Sectors都会变成Reallocated Sectors

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ====
(05) Reallocated Sector Count  192      192    140          66
(C4) Reallocated Event Count   196      196    0             5
(C5) Current Pending Sector    100      100    0             0

注意:不一定要使用像Western Digital的Data LifeGuard这样的“低级”工具。如果您指示Windows执行卷的完整格式(即非快速格式),它将对卷中的每个扇区写入零。

操作系统归档系统支持将扇区标记为不良

掌握了这些知识之后,我们将探索一个通常令人困惑的场景。

集成驱动电子(IDE)出现之前,主机操作系统负责检测坏扇区,重试读取,将数据移动到另一个扇区并将旧扇区标记为坏扇区。

如果要运行chkdsk /r c:使用主机操作系统的操作系统,它将识别出“待处理”的扇区是坏的,并将其本身标记为坏扇区,并且永远不要尝试再次使用它们:

> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.

        12 KB in bad sectors.

因此,假设有一个512字节的扇区硬盘驱动器,12 KB的“待处理扇区”或在本示例中为操作系统标记为“坏扇区”的12KB,则对应于十进制的24或十六进制的0x18,如SMART磁盘实用程序所示例如水晶磁盘信息:

ID   Attribute Name            Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ====
(C5) Current Pending Sector    100      100    0            18

注意:Western Digital的Data LifeGuard v1.31(截至2017年8月31日最新)实用程序似乎无法正确显示当前的SMART'Raw'计数器值。

现在,如果执行完整格式 (将零写入卷中的每个扇区)

在此处输入图片说明

这意味着所有Pending将要重新分配的部门。现在,归档系统再次使用这些扇区是安全的。为了指示归档系统这些扇区不再“坏”,您可以执行一个选项来重新评估坏扇区:

>chkdsk c: /B

命令文档说的地方

/B              NTFS only: Re-evaluates bad clusters on the volume
                (implies /R)

要么

根据:https : //technet.microsoft.com/zh-cn/library/cc730714(v=ws.11).aspx

/B              NTFS only: Clears the list of bad clusters on the volume and 
                  rescans all allocated and free clusters for errors. /b includes
                  the functionality of /r. Use this parameter after imaging a
                  volume to a new hard disk drive.

这是一整篇洛塔作品,以及一遍完整的洛塔屏幕截图,这些内容永远不会被阅读。


我有一个200MB的文件,有87%的问题。我有3个待处理的部门。我尝试对文件进行哈希处理以获得良好的读取效果并声明了重新分配的扇区,但是它们并未重新分配!哈希结果:确定,失败,确定,确定,失败,失败。操作系统每次在事件查看器中生成若干磁盘错误,并且按正确的哈希表进行处理,便以87%的速度挂了半分钟。所有哈希都是相等的。C5仍为3,C4仍为0。您对此有何看法?
Mark Jeronimus

@MarkJeronimus尝试使用文件擦除器,它将所有零(或所有随机数据)写入文件。这应该促使您意识到您不再关心那些领域了。
伊恩·博伊德

我做了完整的格式,但仍然没有变化。
Mark Jeronimus 2014年

2
我不太了解的一件事:是否可以(a)显示哪些文件包含当前C5扇区,以及(b)“核对”这些扇区,即将其移至C6,然后停止尝试读取它们?我不希望我的硬盘陷入无尽的读取失败循环中。宁愿遮盖这些扇区并删除有问题的文件(如果重要,请从其他来源手动恢复它们)。
MM

1
不过,我不想将整个驱动器归零,只是解决一些问题。谢谢
-MM

5

您无需执行任何操作-到目前为止。重新分配计数的意思是“磁盘发现有缺陷的扇区并成功地对其进行了重新分配”。固件已经解决了该问题。

您只需要知道驱动器开始出现故障即可。在将来的某个时候,驱动器将没有剩余的扇区可用于重新分配,您将丢失数据。如果丢失了一些重要的块,则可能会丢失驱动器上的所有数据。

因此,请密切注意此价值或立即购买新驱动器,以免忘记它。


3

我对这里描述的方法有很好的经验,https://www.smartmontools.org/wiki/BadBlockHowto。我的磁盘正在发出噪音并停止工作,因此我使用了智能报告和公式来计算不良块并使用dd清除它。我很幸运,因为smart仍在报告当前扇区数,但是磁盘已经运行了大约2年。我确实买了替代品,但从未使用过。在我看来,聪明也不是那么准确。


在向零位置写入零以强制重新分配时(如该链接中所建议的),dd的oflag = direct选项是我正在寻找的部分。谢谢!
安东

2

也许您不知道此工具: HD Sentinel

硬盘前哨(HDSentinel)是一款多操作系统SSD和HDD监视和分析软件。它的目标是查找,测试,诊断和修复硬盘驱动器问题,报告并显示SSD和HDD运行状况,性能下降和故障。硬盘前哨提供完整的文字说明,技巧,并显示/报告有关计算机内部和外部机柜(USB硬盘/ e-SATA硬盘)中的硬盘和固态磁盘的最全面的信息。提供许多不同的警报和报告选项,以确保最大程度地保护您的宝贵数据。

这似乎是执行此类操作的好工具。但是请注意,某些运行选项可能会完全破坏数据。


1

您需要使用一种写入驱动器每个扇区的工具。否则,就没有办法。如果驱动器分配了备用扇区并重新映射,则应将哪些数据放入备用扇区?它不知道,因为它尝试从现有领域读取失败。只有写操作才能清除错误。


格式化整个硬盘是对每个扇区的写操作吗?我已经格式化了驱动器(基于Windows的格式化命令,没有“快速格式化”)。谢谢
edteke

2
快速格式并不是对每个扇区的写操作,通常是常规格式。您可以随时使用DBaN。常规格式是否至少减少了计数?
David Schwartz 2012年

我使用的是常规格式(不是快速格式),我希望格式倒数或在格式后重新映射,但数字相同。谢谢
edteke

实际上,这很奇怪。您格式化的分区是整个驱动器的大小吗?
David Schwartz 2012年

@edgh:遇到这种错误时,常规格式无济于事。我建议你尝试我的方法。
Gigamegs 2012年

1

零写入,也称为低级格式。通常,您只能使用制造商的磁盘实用程序来执行此操作。如果硬盘驱动器故障导致此错误,则可能立即恢复。


1

尝试使用Spinrite 6或HDD再生器可启动CD。他们确实编写了表面测试,因此它应该清除挂起的坏扇区并增加重新分配的计数。


0

为了添加另一个解决方案,我最近使用了Victoria来修复2个因挂起扇区而失败的磁盘,但是该磁盘不会自行自动重新映射它们。

维多利亚是磁盘的低级图形界面,包括(如果您真的想!)磁盘的逐个字节编辑,强制扇区重新映射故障,支持USB驱动器和廉价的China-bay USB-2-sata适配器,更改出厂设置的智能属性和功能等。

缺点-它是由俄罗斯开发人员开发的,如果您有任何问题,请让我打开潘多拉盒子。

在Victoria的帮助下,我抓住了第一个未能重新映射的扇区,然后通过强制重新映射对每个扇区进行了“读取”扫描。然后,我对整个磁盘进行了“验证”,重新运行了智能检查,现在一切正常。

...但是,我有备用磁盘,因此我现在正在交换它们。这有点吓人,因为我一直都在备份解决方案之间!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.