硬盘坏道重映射

硬盘坏道重映射

硬盘坏道

概述

在制造硬盘时,盘片上的某些区域会包含坏扇区。在3 TB硬盘上,大约有60亿x 512字节扇区(或7.32亿x 4096字节扇区),因此在生产过程中不可避免地会出现坏扇区。

在正常使用期间,坏扇区数量可能会随着时间增长,然后开始出现问题,特别是当坏扇区的数量超过或接近“阈值”或最大值时。通常,当达到阈值并启用SMART时,它会提醒您该问题。我们建议您注意警告并确保有备份,然后紧急更换硬盘,因为这种情况无法改善,而且很可能会变得更糟。您的硬盘可能会开始出现奇怪的症状,例如,在访问硬盘上的数据时,响应变得非常缓慢,根本没有响应,以及挂起或死机蓝屏。如果您的硬盘是这种情况,您可以查看我们的硬盘数据恢复服务,以重新访问存储在硬盘上的数据。

我想指出,外部USB硬盘很少支持SMART,因此您不会收到任何错误警告。

错误的扇区重新映射

在工厂硬盘的最后测试阶段,会扫描磁盘上的坏扇区,并将发现的扇区存储到表或列表中,通常称为“主要缺陷图”。该映射存储在硬盘系统区域的固件区域中,或者在某些情况下存储在硬盘的ROM中。无论哪种方式,用户通常都无法访问它们,只能使用专有的工厂命令查看它们。

当用户购买一个全新的硬盘或计算机时,他们很可能不知道硬盘中包含任何坏扇区,因为它们是使用“翻译器”“绘制”出来的。我将在下面解释翻译器的功能。

在正常使用期间,为了找到需要读取或写入的区域,在硬盘和计算机之间的接口处使用逻辑块寻址或LBA。但在内部,硬盘使用物理块寻址或PBA。在硬盘的工作范围内,LBA使用“转换器”机制转换为PBA。LBA和PBA都基于从零到最大扇区计数的顺序编号系统。

请注意:我在本文中使用的是十进制编号系统。

备用扇区池。

所有现代硬盘驱动器都有一个备用扇区池。当硬盘驱动器的正常使用寿命期间出现坏扇区时,当任何“增长”缺陷被添加到G列表时,备用扇区将被重新分配到原始LBA值。

坏扇区图有两个主要列表,它们被命名为:

P清单包含制造过程最后阶段发现的缺陷,称为主要缺陷。

G列表包含在使用驱动器期间产生的缺陷,称为“生长缺陷”

为清楚起见,P列表包含“转移点”,G列表包含“重新分配的扇区”。

现代驱动器中还有其他缺陷列表,其原理类似。例如,您可能会发现一个T型列表(也称为跟踪缺陷)、一个待定列表以及其他描述驱动器系统区域中坏扇区的列表。制造商对这些列表的命名不同,但为了简单起见,我们将坚持使用Primary(P列表)和Grown(G列表)。

在上文中,我提到了一个“待定列表”。在Seagate®驱动器中,挂起列表称为“未重新分配的增长列表”或NRG。它包含潜在的G列表条目,并在硬盘空闲时或在下一次电源循环期间进行处理。它在读写数据时用作翻译器的扩展。

P列表重新映射。

让我们来了解缺陷列表的实际工作原理,假设我们有一个非常小的硬盘,只有100个扇区和10个扇区的备用池。当测试期间在工厂发现坏扇区时,将换档点输入P列表。

请记住,P-列表值是Shifts。以下是生成P列表之前原始PBA值的外观。表中的每个数字表示实际物理块地址(PBA)。稍后,这将被“转换”为逻辑块地址(LBA)。下面的阶段显示了该过程,

第1阶段。正在扫描坏扇区。

PBA值始终按顺序排列。
0 1 2 3 4 5 6 7 8 9 10 ... 99

扫描后,假设扇区3、6和9被发现是坏的。PBA现在将是这样的。

扫描PBA后,现在看起来像这样。
0 1 2 3 4 5 6 7 8 9 10 ... 99

为了使驱动器正常工作,必须从LBA映射中删除这些坏扇区。这是通过将坏扇区添加到P列表中来实现的。随后,更新“翻译器”以反映更改。

下一步是构建翻译器。

第2阶段。构建P列表和翻译器。

将这些条目添加到P列表后,翻译器开始工作。由于3、6和9的PBA值不再可用,我们需要确保LBA值保持顺序。因此,坏扇区所在的每个LBA值都会向上“移动”到下一个可用的好位置,并存储在转换器中。

将PBA转换为LBA值。
0 1 2 P 3 4 P 5 6 P 7 ... 96

在上表中,我们已经将LBA指针(数字)覆盖在PBA上,因此您可以观察移位点。LBA 3已经向上移动到PBA 4,同样LBA 5移动到PBA7,LBA 7移动到PBA10。还要注意,最后一个LBA值(蓝色)已从99降至96。这是因为3个坏扇区减少了总可用空间。为了纠正这一问题,将3个扇区卷入“备用池”的一部分,在本例中,我们将称为PBA 100、101和102,使驱动器恢复到其完整大小。

这使我们的硬盘驱动器具有正确的扇区数和顺序的LBA序列(如下)。对用户来说,这看起来很完美,尽管驱动器上已经有3个坏扇区。原始的坏扇区已被“绘制”或隐藏。

工厂的当前LBA图。
0 1 2 3 4 5 6 7 8 9 10 ... 99

这是您购买硬盘时的外观。

第3阶段。生长缺陷或G列表。

使用一段时间后,我们的硬盘在LBA 6上出现了坏扇区

G-List包含硬盘正常运行期间发现的坏扇区缺陷的位置。当一个坏扇区出现时,会发生类似于P列表生成的过程,但不是转移,而是重新分配增长的缺陷,导致它们也被映射到LBA表之外。

G列表通常基于LBA值。

G-list G缺陷表
0 1 2 3 4 5 G 7 8 9 10 ... 99

LBA 6被添加到G列表中,并没有如您所期望的那样移动,因为它会完全打乱其余数据。我将在本文末尾解释发生了什么。

G-list条目的情况是,从备用池中分配一个扇区来替换坏扇区。我们已经使用了该池中的3个扇区,因此备用池中的下一个条目是PBA值103。该部门(103)被重新分配给LBA 6,因此我们的新条目将如下所示。

LBA显示G表条目。
0 1 2 3 4 5 103 7 8 9 10 ... 99

一旦该条目在G列表中,LBA值再次失序,因为103已取代LBA 6。新条目被插入到转换器中,使得LBA 6现在被重定向或指向备用扇区103。完成后,将纠正顺序。现在,当LBA 6被请求时,它将返回存储在PBA 103中的数据。

按顺序绘制最终LBA图。
0 1 2 3 4 5 6 7 8 9 10 ... 99

如果有数据存储在坏扇区中,那么对于用户来说,数据可能会丢失。这可能表现为不再打开的文件、不再运行的程序或其他错误行为。在下次尝试打开文件之前,这种类型的失败可能不会变得明显。自上次打开文件以来,可能已经过了很长时间。因此,在制定备份计划时,请记住这一点。

在许多情况下。仍然可以直接从G列表中列出的部门恢复数据。这是原因之一,政府法规发生了变化,存储敏感数据的硬盘一旦出现故障或电脑升级,就必须进行物理销毁。

坏扇区的数据恢复可以使用专业工具来执行,这些工具允许我们关闭自动扇区重新分配、编辑G-list条目并重建转换器。然后,通过尝试过度读取坏扇区,我们通常可以从扇区中恢复旧数据。取决于扇区是软扇区还是硬扇区。请参阅“什么是坏行业”一文,了解有关软坏行业和硬坏行业的更多详细信息。

一旦坏扇区开始发展,并且SMART启动并得到驱动器的支持,它将设置一个标志,表明驱动器很快就会失败。屏幕上会显示一条消息,指出这一点,建议进行备份和更换。

“为什么不将新缺陷添加到P列表中?”。

答案是:;LBA是指向真实PBA值的指针值。如果一个增长的缺陷被添加到P列表中,那么除了坏扇区之外的每个扇区都需要向上移动。这将导致大量数据丢失。因此,使用再分配更有效,因为它只影响一个条目。如果您仍然不确定,请再次查看P列表和G列表背后的方法,这将有助于了解发生了什么。


原文链接
https://www.dbsos.cn/blog/290.html