什么是坏部门?如何解决? [第2部分]

本文的第1部分研究了驱动器硬件以及控制器如何在后台工作,以检测和解决在正常操作期间检测到的坏扇区的问题。

在该讨论的结论中,我们将查看操作系统,驱动器制造商和其他第三方提供的工具,您可以使用这些工具来管理和监视驱动器,以使其保持最佳状态。

免责声明:在运行本文中的任何命令之前,请确保已对驱动器进行了良好的备份,因为尝试修复坏扇区可能会导致文件系统损坏。这意味着可能会丢失用于定位卷上文件和目录的部分数据文件或元数据。制造商和第三方工具可能与操作系统实用程序一样灾难性。这对于那些绕过操作系统保护并直接访问驱动器的实用程序尤其重要,而这些驱动器正是这些工具完全所执行的操作。

扫描磁盘以查找不良扇区

每个操作系统都有工具来扫描磁盘上的坏扇区。如果计算机检测到不正确的关机,则其中的一些会在启动过程中自动调用。例如,Windows在NTFS卷上的主文件表(MFT)或FAT16 / 32驱动器上的文件分配表(FAT)中维护“脏位"。

在启动过程中,autochk程序将查找此值,如果已设置,它将在标记的所有卷上运行chkdsk执行的操作的缩写版本。其他现代操作系统也使用类似的过程。

对于那些不害怕Windows命令行的人,请 chkdsk / r chkdsk / b >可以随时运行以查找坏道。在可选的坏扇区通过之前,它将首先运行其他测试以验证驱动器元数据的一致性。根据所讨论的卷的大小以及目录和文件的数量,可能需要花费一些时间才能完成。这两个命令之间的区别是第二个命令将重新评估已由操作系统标记为坏的扇区。

Windows还具有可用于执行相同检查的GUI工具。可以通过打开 Windows资源管理器>右键单击驱动器进行检查>属性>工具选项卡>立即检查... >选中“扫描并尝试恢复坏扇区">“开始"

无论选择哪个,如果您正在扫描系统或启动驱动器,都将需要独占访问权限。卷,并询问您是否要安排在下次重新启动时进行扫描。如果它不是系统驱动器,则应该立即开始扫描,除非另一个进程已经将其锁定以进行独占访问。

此工具不会将单个扇区标记为坏;它在MFT或FAT中将整个群集标记为不良,并将整个群集重新定位到驱动器上的另一个未使用的群集。如果驱动器硬件由于某种原因(例如,其备用扇区池已用尽)无法重新映射坏扇区,则会发生这种情况。

尽管badblocks程序可用于在磁盘上搜索坏块(扇区)在Linux系统上进行分区,我建议您使用 e2fsck -c 或适用于所用文件系统的 fsck 变体。这样可以确保将正确的参数传递给badblocks程序。

不正确的参数可能会对文件系统造成无法修复的损害。 -c 参数对卷执行只读测试。如果要使用无损读写测试,则需要指定 -cc 参数。

使用 -c 时或 -cc ,将重建整个不良列表。如果您希望将现有条目保留在列表中,而仅将新块添加到列表中,请添加 -k (保留)选项。如果您怀疑驱动器本身和/或文件系统已损坏,则可能还需要添加 -p (整理)选项,该选项将尝试自动修复任何损坏。如果无法修复发现的错误,它将通知您。

驱动器制造商拥有自己的诊断软件,可用于执行表面分析和控制特定于驱动器的功能。西部数据为其驱动器安装了适用于Windows的Data Lifeguard,而希捷具有Windows的可用于测试Seagate,Maxtor和三星驱动器的SeaTools。

两者均提供了用于测试和修复其相关驱动器的选项,但您需要请注意哪些测试具有破坏性,哪些没有破坏性。无论哪种情况,在继续操作之前,您都应该都具有当前备份。

还有一些第三方工具,例如Gibson Research Corporation的SpinRite,可以访问操作系统级别以下的驱动器以执行其驱动器。魔法。它绕过BIOS,直接与硬盘驱动器控制器进行交互。它主要用于数据恢复,但也可以用于在将新驱动器投入使用之前执行表面分析和验证。

SpinRite确实有其局限性。因为它在FreeDOS操作系统上运行,并且使用CHS来访问驱动器,所以它只能访问前2 28 (268,435,456)个扇区。因此,使用512字节扇区的驱动器将被限制为128 GB,而使用4K扇区的驱动器将被限制为1 TB。

通过使用Windows 98 DOS 7命令解释器将其设置在可启动磁盘上,SpinRite 6可以从理论上测试整个驱动器。

坏道是否可以修复?

制造过程中出现的物理缺陷,磁头崩溃以及硬盘控制器检测到的大多数其他故障通常无法修复。那些被操作系统隔离的是另一回事。

有时可以恢复已被操作系统标记为坏的块或群集。由于一个群集通常是几个扇区,单个坏扇区将使整个群集标记为坏扇区,因此有时可以恢复这些群集。

这是因为硬盘驱动器控制器可能未处理操作系统出现问题之前的坏扇区。请记住,除非驱动器无法读取扇区,否则它通常不知道出了什么问题,除非有大量读取失败或读取失败后尝试对该扇区进行写操作,否则它不会尝试重新映射该扇区。

如果操作系统将包含群集的群集标记为坏后,如果硬盘驱动器控制器已重新分配坏扇区,请重新运行适当的命令以重新评估坏块(对于Windows,为 chkdsk / b e2fsck -cc (对于Linux)–您不得在此处使用 -k 选项,因为它将保留当前的坏块列表),应将其从列表中清除。

SpinRite是声称能够恢复弱扇区的工具之一。即使经过三十年的技术合作,我也不愿相信这一点。由于无法可靠地从中读取数据,因此驱动器控制器最初将该扇区标记为坏扇区(或者包含的群集由操作系统标记)。即使可以提高其保留数据的能力,它也可能是暂时的,应该引起一些疑问。

  • 此修复的临时性如何?
  • 您是否愿意相信您对这一部门的数据信任吗?
  • 个人而言,这是我不愿意涉足的领域。我的许多数据太重要了。

    监视驱动器状态

    保护存储在驱动器上的数据的两种最佳方法之一-如果您无法从中识别出它们以前的评论–是为了确保您已实施可靠的备份计划。

    另一种方法是使用软件监视驱动器的状态。现代硬盘驱动器包括自监视,分析和报告技术(有助于确定驱动器的运行状况并预测故障。

    Ubuntu,RedHat及其派生产品均将“磁盘"实用程序作为其默认安装的一部分。它不仅使您能够访问最重要的SMART计数器,还可以运行短期和扩展SMART测试;还有诸如smartctl之类的命令行工具,可用于自动检查和报告驱动器状态。

    当您看到这些工具报告的值时,请不要惊慌。已设置阈值由制造商指出何时会被认为是问题。当前的归一化值可能会比报告的最差值更高,并且对于大多数计数器而言,这是期望的。归一化值的范围是1到1。 253,尽管某些制造商会为某些属性选择100或200的起始点,但是从较高的起始点开始逐渐降低,直到低于阈值时并不一定是问题。

    您选择使用哪种工具来监视存储设备,如果驱动器支持它们,则应考虑一小段计数器:

  • 计数器5(重新分配的扇区数) )是自G-LIST投入使用以来已重新分配并放置在G-LIST中的扇区总数。这不包括工厂标记的扇区。原始数据是真实计数,因此越低越好。
  • 计数器10(旋转重试计数)表示驱动器需要多少次才能尝试旋转驱动器直到达到如果第一次尝试失败,则为操作速度。此属性的增加表示驱动器出现机械故障或可能的电源问题。
  • 计数器187(报告的不可纠正错误)是无法由驱动器修复的ECC错误的数量。驱动控制器。查看原始值时,值越低越好。
  • 计数器188(命令超时)是设备上中止的操作数。这通常是电源问题或数据电缆连接问题引起的。同样,原始数据值应较低。
  • 计数器195(已恢复硬件ECC)是特定于供应商的实现,因此这些值可能并不总是代表相同的条件。通常,它是从驱动器返回正确数据所需的ECC校正次数的计数。
  • 计数器196(重新分配事件计数)扇区触发控制器重新映射事件的时间。它统计重新映射扇区的成功尝试和失败尝试。并非所有制造商都支持。
  • 计数器197(当前待处理扇区数)是当前标记为不稳定的扇区数,如果下次尝试读取该扇区将被重新映射。成功或下一次写入时。成功重新映射扇区后,此计数器将递减。
  • 计数器198(脱机不可校正扇区计数)是读取或写入扇区时的错误总数。如果开始出现这种情况,则说明磁盘表面或机械子系统有问题。
  • 单独考虑,许多可用的计数器并不能帮助您深入了解驱动器的整体运行状况。但是,当将它们组合在一起时,尤其要注意上面列出的那些趋势,您更有可能发现负面趋势,因此可以为硬盘的必然消亡做好准备。

    结论

    甚至尽管有可用的工具来帮助预测存储设备中还有多少寿命,但这并不能消除对经过测试的可靠备份计划的需求。有证据表明,在整个历史记录中没有出现任何SMART错误的情况下,大量驱动器将发生故障。在同一份报告中,它还显示出上面列出的某些SMART错误与设备的使用寿命非常短之间的高度相关性。

    例如,上图中指示的坏扇区来自驱动器Hard Disk Sentinal Pro估计还有21天的使用寿命。两个月前,它报告了30天,但我仍在等待观察它将走多长时间才能找到通往数据天堂的道路。因此,它确实表明,预测分析虽然表明数据处于危险之中,但仍不能准确地给出剩余时间的可靠信息。

    即使坏道数个月来却没有增加,在驱动器上使用HDD Regenerator来查看是否可以使这77个坏扇区恢复正常并没有帮助,总体运行状况仍然有所下降。看到它能存活多长时间会很有趣。

    标签: