我有一个用 TechTool 扫描的硬盘,它报告了一个坏块。据我所知,TechTool 只扫描并报告失败。它并没有修复任何问题。
过去,Norton Disk Doctor 负责扫描和标记(重新映射)Mac 上的坏块。如今,我们有各种工具可以修复 HFS+ 目录错误(磁盘实用程序、fsck、DiskWarrior、TechTool),但我不知道有什么工具可以进行表面扫描和修复坏块。
有什么软件可以实现这个功能?
如果我知道坏块的地址,是否有一个低级终端实用程序可以标记它?
答案1
我不知道有任何工具可以进行表面扫描并修复坏块。
您在使用哪种类型的 Mac 和哪种类型的硬盘时遇到了问题?
我怀疑您能找到任何软件工具来“修复”坏块,至少对于最近的硬件来说是这样。我不知道什么时候开始的,但不久前重新映射坏扇区的功能被合并到硬盘固件中。
如果你看看SMART 寄存器使用类似工具来检查你的驱动器智能报告系统,您应该会看到 ID 号为 05 且标题为“重新分配的扇区数”的条目。这是驱动器已重新映射的坏扇区数。
也许 Disk Warrior 的“坏块”指的是别的东西?(但我猜不出那是什么)。
更新回复评论(如下):
SMARTReporter 似乎是一个相当“古怪”的实用程序。实际上,您可以查询和显示驱动器 SMART 寄存器的内容,只是您必须克服一些意想不到的困难才能做到这一点。
在里面SMARTReporter 常见问题解答你可以找到这个小贴士:
SMARTReporter 能否准确告诉我哪个 SMART 测试失败?
可以,从 2.4.5 版开始!在首选项窗口的驱动器列表中右键单击驱动器,然后选择“检查 SMART 属性”。
SMARTReporter 的另一个怪癖是,剪切粘贴功能似乎仅在您使用菜单栏条目时才在这些显示窗口中起作用。键盘快捷键和鼠标“右键单击”上下文窗口不起作用。另一方面,SMARTReporter是自由的。 ;-)
但我离题了......
奇怪的是,当所有其他实用程序都显示驱动器为“已验证”时,SMART 实用程序却称其为“故障”。它显示 1 个待处理坏扇区。那么,如何将“待处理”坏扇区更改为“已移除”或“已重新分配”坏扇区?
我的理解是你不会这样做。驱动器的固件应该会自动完成此操作。请注意维基百科 SMART 文章中的表格。
05 重新分配的扇区数
重新分配的扇区数。当硬盘发现读取/写入/验证错误时,它会将此扇区标记为“重新分配”,并将数据传输到特殊保留区域(备用区域)。此过程也称为重新映射,“重新分配”的扇区称为重新映射。
这就是为什么在现代硬盘上,在测试表面时无法发现“坏块”– 所有坏块都隐藏在重新分配的扇区中。但是,随着重新分配扇区数量的增加,读/写速度趋于下降。
原始值通常表示已发现并重新映射的坏扇区数量。因此,属性值越高,驱动器必须重新分配的扇区就越多。C5 当前待处理扇区数
“不稳定”扇区的数量(由于读取错误而等待重新映射)。如果随后成功写入或读取了不稳定扇区,则此值会减少,并且不会重新映射该扇区。扇区上的读取错误不会重新映射该扇区(因为以后可能会读取);相反,驱动器固件会记住该扇区需要重新映射,并在下次写入时重新映射它。
因此,如果上述情况属实,那么显然待处理扇区数需要谨慎解释。扇区读取错误最有可能发生在您之前使用 TechTool 进行的磁盘扫描期间。(顺便问一下,您的意思是TechTool Deluxe 3.1.3?)由于 TechTool 可能没有尝试写入该扇区,因此它尚未重新分配。
不重新格式化可以做到吗?
我认为“重新格式化”只有在格式写入时才会完成一些事情每一个驱动器上的扇区。我不知道使用磁盘实用程序进行标准(非安全)擦除...我相信您所说的 MAC 环境中的重新格式化...是否可以实现此目的。
如果你这样做,这将是一项非常耗时的任务。我最近用 500GB 的笔记本电脑驱动器做了类似的事情,花了不到 2 个半小时才完成。当然,你还得加上时间(希望如此)从(希望是可靠的)备份中恢复系统。
我不清楚您是否需要尝试主动强制“纠正”此问题。据推测,下次尝试写入坏扇区时,驱动器的固件应该会自行处理此问题。此外,我认为有问题的扇区目前可能没有被用作任何文件的一部分。TechTool 在扫描驱动器的所有扇区时“偶然发现”了它。
但是如果你想尝试强制更正,那么我猜你必须做一些强制写入该扇区的事情。但这似乎不值得付出努力。我会继续备份你的文件并密切关注你的驱动器,以防它开始进一步降级。
答案2
如果在运行文件系统完整性检查时看到坏块,则硬盘很可能已经超出了它可以重新映射的块数,并且已经耗尽了其“备用”扇区。 您应该立即备份数据(如果还没有备份的话)并在问题变得更严重并且丢失数据之前更换驱动器。
我建议下载智能工具和智能控制如果您不确定要信任哪个 SMART 诊断,请将 SMART 诊断作为另一项检查。
如果 SMART 诊断报告没有重新分配的扇区(或者“重新分配的扇区数”的 VALUE 列仍远低于 THRESHOLD),则有一种简单的方法可以执行表面扫描并同时重新映射坏块。(注意:请务必先备份您的数据!)
强制驱动器执行其自身的坏块重新映射的最简单方法是从Ubuntu 实时 CD,然后打开终端并运行此命令:
sudo badblocks -nvs /dev/sda
这将对第一个驱动器进行非破坏性随机读写测试,并重新映射坏扇区。
如果您有多个硬盘,可以将 /dev/sda 替换为 /dev/sdX,其中 X 为小写字母。您可以通过输入以下命令获取所有硬盘(/dev/sdX 设备)的列表:
sudo fdisk -l
由于你使用的是基于 BSD 的 Mac OS X,你可能还需要阅读坏节和坏144,它们是用于处理坏块的内置 BSD 命令行实用程序。
答案3
我对 grc.com 的 SpinRite 的使用体验非常好。我成功恢复了至少 4 个磁盘,这些磁盘在每次尝试修复时都失败了。唯一的缺点是它需要基于 BIOS 的机器,这意味着它无法在现代基于 EFI 的 Mac 上运行。好消息是,几乎任何其他 poc PC 都可以运行它,无论是软盘、CD 还是闪存驱动器。在实际检查各个扇区的内容和恢复其他所有实用程序丢弃的坏块中的数据方面,我还没有找到任何其他与之接近的东西。
答案4
这是一个老问题,但仍然有效。对我有用的是:
- 如果可能的话,从主分区或驱动器以外的分区或驱动器启动。如果您想使用第三方应用程序来识别损坏的文件,请确保它不是 Mac 的恢复选项
- 识别硬盘上所有因坏块而损坏的文件。我碰巧使用 Carbon Copy Cloner 创建驱动器镜像作为备份(它会为您提供损坏文件的列表)。可能还有其他工具可以做到这一点。
- 在您的驱动器上找到这些文件,然后删除它们(也清空垃圾!)
- 打开磁盘实用程序,通过写入“0”来清除空磁盘空间。(您只需写入一次,因此请选择最快的选项)。请注意,这仍然需要一些时间,特别是如果您有大量可用空间。
这会识别坏块并对其进行标记,这样就不会再次使用。如前所述,只有在尝试写入时才会显示错误。通过写入 0,您就可以做到这一点。
- 如果您在某处有这些文件的备份,请从备份中手动替换它们(如果您首先想要替换它们)。
我可以想象这会非常耗时,尤其是当错误很多,需要替换的文件也很多时。如果是这样的话,请考虑更换驱动器,情况会变得更糟……