2012-01-30 20:59:25 +0000 2012-01-30 20:59:25 +0000
38
38

如何强制重绘S.M.A.R.T C5(当前待处理部门数)中报告的部门?

我的三星HM640JJ硬盘(在HP Pavilion dv6笔记本中)的S.M.A.R.T C5值是 “黄色状态=谨慎 ”

C5昨天是10,今天是21。

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

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

  • 我删除了分区,重新创建了分区,并格式化了整个硬盘。
  • 我运行了chkdsk /r /f
  • 我运行了BIOS磁盘检查工具和其他诊断/修复工具。

答案 (8)

120
120
120
2013-12-15 18:06:48 +0000

简答:向扇区写入一些新的内容(甚至是零–长格式化就是这样)。

长答案

今天的硬盘驱动器试图向主机隐藏坏扇区。主机只要求硬盘返回特定扇区号的内容。通常情况下,硬盘会读取扇区,将其返回给主机,然后一切正常。

硬盘知道它所读取的值是否有效,因为硬盘使用 纠错码(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

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

这些背着电脑重新读取扇区、消耗备用扇区的行为是件好事。这意味着主机操作系统不必处理失效扇区的问题。硬盘本身可以自己处理这些细节。

附加聊天 。在过去的日子里,你的硬盘在出厂时都会贴上一张贴纸。这个贴纸包含了 Factory Defect List;硬盘上所有已知的坏点的列表。

如果您对硬盘进行低级格式化,您必须使用工具输入所有坏点的Cinder-Head-Sector位置。
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个扇区,硬盘识别为坏扇区,但还不能重新分配。如果您要读取其中一个 “待定扇区",硬盘可能会重试(重试,再重试),并最终向主机操作系统返回一个读取错误。

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

放弃待定扇区,它将被重新分配

有两种方法可以让硬盘最终**重新分配扇区,并消耗另一个空闲的扇区:

  • 它最终得到了一个很好的读取
  • 你不再关心扇区中的内容

如果硬盘最终读取了扇区,那么它知道它可以重新分配扇区。

硬盘重新分配扇区的另一个方法是让它知道该扇区的内容无关紧要,你不再关心它的内容。如何做到这一点呢?

在扇区中写入新的内容。

每当你从硬盘上读取或写入一个扇区时,你必须读取/写入整个512字节的扇区1。你不能只写一个扇区的一部分。当操作系统向一个扇区写入数据时,它必须指定整个512字节。如果你告诉硬盘,你想让这些新的内容取代这个坏扇区,那么硬盘就会知道你根本不关心坏扇区中当前的内容。它就可以重新分配一个坏扇区到其中一个备用扇区,这个扇区就不再是Pending了。

这就是为什么当人们问到关于 如果有一些Current Pending Sectors,通常的建议是使用一个工具(如Western Digital的Data LifeGuard)将所有零写入硬盘。

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

        12 KB in bad sectors.

通过向硬盘上的每一个扇区写0,你是在告诉硬盘,它终于可以重新分配所有那些讨厌的待分配扇区。擦除之后,所有的Pending Sectors都会变成Reallocated Sectors

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

注意:并不是一定要使用像Western Digital的Data LifeGuard这样的 "低级 "工具。如果您指示Windows对卷进行格式化(即非Quick格式化),它将对卷中的每个扇区写入零。

操作系统的文件系统支持将扇区标记为坏扇区

有了这些知识,我们将探索一个常见的混乱情况。

在IDE出现之前,主机操作系统负责检测坏扇区,重新尝试读取,将数据移动到另一个扇区,并将旧扇区标记为坏扇区。

如果你要使用主机操作系统运行chkdsk /r c:,它会识别出"待定”扇区是坏的,并且自己将它们标记为坏的,并且再也不会尝试使用它们:

>chkdsk c: /B

所以假设一个512字节扇区的硬盘,12KB的 “待定扇区",或者在这个例子中,12KB被操作系统标记为 "坏扇区",这将对应于十进制24或十六进制0x18,因为将由S. S.M.A.R.T.磁盘实用程序(如Crystal Disk Information)所显示的那样。

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

。Western Digital 的 Data LifeGuard v1.31(截至 8/31/2017 的最新版本)实用程序似乎无法正确显示当前 S.M.A.R.T. "原始 "计数器值。

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

/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.

这意味着所有那些Pending的扇区将被重新分配。现在归档系统可以安全地再次使用这些扇区了。为了指示文件系统这些扇区不再是"坏的”,你可以执行一个选项,让它重新评估坏的扇区。

命令文档中说的是

或者

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

这是一大堆的文字和一大堆的截图,为了一些永远不会被阅读的东西。

5
5
5
2012-09-11 10:05:04 +0000

你还不需要做任何事情。重新分配计数意味着 “磁盘发现了有缺陷的扇区并成功地重新分配了它"。固件已经修复了这个问题。

你只需要意识到硬盘开始出现故障。在未来的某个时刻,硬盘将没有多余的扇区来重新分配,你将丢失数据。如果某个重要的区块丢失,你可能会丢失硬盘上所有的数据。

所以要注意这个数值,或者马上买一个新的硬盘,这样你就可以忘掉它了。

3
3
3
2012-01-30 21:29:36 +0000

我有很好的经验,这里描述的方法 https://www.smartmontools.org/wiki/BadBlockHowto 。我的磁盘发出噪音并停止工作,所以我使用smart报告和公式计算出坏块并使用dd来清除它。我很幸运,因为smart还在报告当前的扇区数,但这块磁盘从2年左右就开始工作了。我确实买了一个替代品,但我从来没有用过。在我看来,smart也不是那么准确。

2
2
2
2012-10-18 08:38:52 +0000

也许你不知道这个工具 HD Sentinel

Hard Disk Sentinel (HDSentinel)是一款多操作系统的SSD和HDD监控分析软件。它的目标是发现、测试、诊断和修复硬盘驱动器的问题,报告和显示SSD和HDD的健康状况、性能下降和故障。Hard Disk Sentinel提供完整的文字描述、提示,并显示/报告计算机内部和外部机箱(USB硬盘/e-SATA硬盘)中的硬盘和固态硬盘的最全面信息。许多不同的警报和报告选项可用于确保您宝贵数据的最大安全。

这似乎是一个很好的工具来做这样的操作。但要注意,一些运行选项可能会完全破坏数据。

1
1
1
2013-05-31 11:13:45 +0000

试试Spinrite 6或HDD regenerator可启动光盘。它们会写表面测试,所以它应该会清除待处理的坏扇区,并增加重新分配的数量。

1
1
1
2012-06-08 21:34:36 +0000

零写入,也就是所谓的低级格式化。您通常只能使用制造商的磁盘实用程序来进行此操作。如果有硬盘故障导致这个错误,它可能会几乎马上回来。

1
1
1
2012-01-30 21:22:33 +0000

你需要使用一个工具,写到硬盘的每个扇区。否则,就没有办法做到这一点。如果硬盘分配了一个备用扇区并进行了重新映射,那么它应该在备用扇区中放入什么数据呢?它不知道,因为它从现有扇区读取的尝试失败了。只有写操作才能清除错误。

0
0
0
2019-10-30 15:48:58 +0000

再补充一个解决方案,最近我用 Victoria 修复了2个磁盘,故障时有待修复的扇区,然而磁盘不会自己自动重映射。

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

缺点–它是由俄罗斯开发者开发的,如果你对它有意见,我让你去打开那个潘多拉的盒子……。

对于Victoria,我抓住了第一个未能重映射的扇区,对之后的每个扇区进行了 “读取 "扫描,并强制重映射。然后,我对整个磁盘进行了 "验证",重新进行了智能检查,现在一切正常……

……不过,我有备用盘,所以我现在正在换盘。这有点吓人,因为我也是在备份方案之间,所有的时间!