修复Mac硬盘上的坏块[关闭]


24

我有一个用TechTool扫描的硬盘,它报告一个坏块。据我所知,TechTool仅扫描并报告故障。它不能解决任何问题。

过去,Norton Disk Doctor进行了扫描和标记(重新映射)Mac上的坏块的工作。今天,我们有各种各样的工具可以修复HFS +目录错误(磁盘工具,fsck,DiskWarrior,TechTool),但是我不知道有任何工具可以进行表面扫描修复坏块。

有什么软件可用于此?

如果我知道坏块的地址,是否有一个用于标记它的低级终端实用程序?


3
当读取操作失败时,现代硬盘会自动重新映射坏块。唯一的问题是该块中的数据丢失,这可能导致文件不可读/损坏,或者可能导致FS错误-为此,请使用系统的checkdisk / fsck(我对Mac不太熟悉)。[有时,坏块是断电的结果,而不是硬件问题;这是可以解决的,但主题不同。]
chronos 2010年

5
@chronos有许多现代的HDD只能在WRITE操作失败时自动重新映射坏块,而不读取。我已经使用了许多最新的硬盘驱动器,这些驱动器将一次又一次地无法读取相同的坏块,但是一旦您对其进行写入,问题就得到了解决。
Spiff 2010年

2
@Spiff-您是正确的,我犯了一个错误,试图避免冗长地解释块的数据和CRC字段如何协同工作以确保数据完整性,因此需要执行写操作来检查其是否是物理块问题或刚刚损坏的CRC(是可修复的)。实际上,我不知道有任何现代硬盘在读取时执行重映射...
chronos 2010年

1
需要考虑的事情是:我在NTFS分区上“固定”挂起扇区的经历包括1)标识确切的数据扇区,2)向其写入和3)重置内部NTFS坏扇区计数器(这是唯一的步骤)我记录在bogdan.org.ua/2010/03/01/…)。我不确定HFS +是否还会维护这样的坏块计数器-如果确实如此,如果要恢复单个扇区,这可能是另一个问题。
chronos 2010年

Answers:


9

我不知道有什么工具可以进行表面扫描并修复坏块。

您遇到哪种类型的Mac和哪种硬盘驱动器?

我怀疑您会找到任何“修复”坏块的软件工具,至少对于最近的硬件而言。我不知道它什么时候开始的,但是一段时间以前,重新映射坏扇区的功能已合并到硬盘驱动器的固件中。

如果使用SMARTReporter之类的工具查看驱动器的SMART寄存器,则应看到ID号为05且标题为“ Relocatedlocated Sectors Count”的条目。这是驱动器已重新映射的坏扇区的数量。

也许Disk Warrior的“坏块”是指其他东西?(我无法猜测可能是什么)。


更新以回复评论(如下):

SMARTReporter似乎是一个相当“古怪”的实用程序。实际上,您可以查询并显示驱动器的SMART寄存器的内容,您只需要跳过意外的循环即可。

SMARTReporter常见问题中,您可以找到以下提示:
SMARTReporter可以准确告诉我哪个SMART测试失败了吗?
是的,从2.4.5版本开始!在首选项窗口的驱动器列表中右键单击驱动器,然后选择“检查SMART属性”。

SMARTReporter的另一个怪癖是,当您使用菜单栏条目时,剪切粘贴显然仅在这些显示窗口中起作用。键盘快捷键和鼠标“右键单击”上下文窗口不会执行此操作。另一方面,SMARTReporter 免费的。;-)

但是我离题了...

奇怪的是,当所有其他实用程序将驱动器显示为“已验证”时,SMART Utility将该驱动器称为“故障”。它显示1个待处理的坏扇区。因此,如何将“待处理”的坏扇区更改为“已删除”或“重新分配”的扇区?

我的理解是不会这样做。该驱动器的固件应自行自动完成。请注意Wikipedia SMART文章中表格中的内容

  • 05重新
    分配的扇区数重新分配的扇区数。当硬盘驱动器发现读取/写入/验证错误时,它将将该扇区标记为“已重新分配”,并将数据传输到特殊的保留区(备用区)。此过程也称为重新映射,“重新分配”的扇区称为重新映射。
    这就是为什么在现代硬盘上测试表面时找不到“坏块”的原因 -所有坏块都隐藏在重新分配的扇区中。但是,随着重新分配的扇区数的增加,读/写速度趋于降低。
    原始值通常表示已找到并重新映射的坏扇区数的计数。因此,属性值越高,驱动器必须重新分配的扇区越多。

  • C5当前待处理的扇区计数
    “不稳定”扇区的数量(由于读取错误,正在等待重新映射)。如果随后成功地写入或读取了不稳定的扇区,则该值将减小并且不会重新映射该扇区。扇区上的读取错误不会重新映射该扇区(因为以后可能会读取);相反,驱动器固件会记住该扇区需要重新映射,并在下次写入时对其进行重新映射。

因此,如果上述情况成立,则显然需要谨慎解释“ 待处理的扇区数”。扇区读取错误很可能是在您之前使用TechTool进行磁盘扫描时发生的。(顺便说一句,您的意思是TechTool Deluxe 3.1.3吗?)由于TechTool可能没有尝试写入该扇区,因此尚未(尚未)重新分配。

不用重新格式化就能完成吗?

我认为,“格式化”只有在将格式写入驱动器上的每个扇区时才能完成。我不知道使用磁盘工具进行标准(非安全)擦除是否可以实现此目标,这是我相信在MAC环境中重新格式化的意思。

如果这样做,将是非常耗时的任务。我最近用500GB笔记本电脑驱动器做了类似的事情,花了不到2 1/2个小时才完成。当然,您必须花些时间从(希望值得信赖的)备份中恢复(希望)系统。

对我来说,尚不清楚您是否需要尝试积极地对此进行“纠正”。假设下次尝试写入坏扇区时,驱动器的固件应自行处理。另外,在我看来,有问题的扇区当前未被用作任何文件的一部分。TechTool只是在扫描驱动器的所有扇区时“偶然发现”了它。

但是,如果您想尝试强制更正,那么我猜您将不得不执行一些操作来强制对该扇区进行写操作。不过,这似乎不值得付出努力。我将继续备份您的文件并密切关注您的驱动器,以防驱动器开始进一步降级。


1
这用于我的iMac内部SATA HD。SMARTReporter除了“已验证”外没有说太多,但另一个名为SMART Utility的工具具有所有信息。奇怪的是,当所有其他实用程序将驱动器显示为“已验证”时,SMART Utility将该驱动器称为“故障”。它显示1个待处理的坏扇区。因此,如何将“待处理”的坏扇区更改为“已删除”或“重新分配”的扇区?不用重新格式化就能完成吗?(是的,我已经备份了,但是为了节省时间。)
Andrew Vit 2010年

1
除了我在上面的更新中所说的以外,我个人的喜好是运行驱动器制造商的诊断程序。也许这超出了实际需要,但我想出“为什么不呢?” 但是,如何为iMac做到这一点实在令人费解。通常,诊断程序以可引导CD映像的形式分发,但是我不相信它们中的任何一个都可以在Intel Mac上引导。为了解决这个问题,我通常将驱动器卸下并将其安装在Windows PC中。但是,我相信从iMac上删除驱动器可能是真正的PITA,我不推荐这样做。<叹>
不合理的约翰·

@Andrew Vit-写入该待处理坏扇区可能会修复该问题(从待处理列表中删除该扇区,而不添加到“重新分配”列表中)。
chronos 2010年

3
作为记录,最终做到了这一点:使用了“ write zeros”选项重新格式化,这花了一些时间,然后从备份中克隆回来。我在SMART Utility中报告的“待处理”坏块消失了:它消失了,驱动器现在没有坏块... /耸肩/
Andrew Vit

1
@Andrew Vit:感谢您更新您的状态。我总是很高兴了解故事的结局。如果让您开心,那无疑是值得的。但是,国际海事组织的“写零”格式已过大。该部门可能没有得到积极使用,如果(当您)使用时,可能会被重新映射。出于好奇,您能否再次检查您的SMART值并查看该扇区是否实际上已重新映射?(重新分配计数从0更改为1?)还是“只是一个损坏的CRC”?
非理性约翰

12

如果在运行文件系统完整性检查时看到坏块,则硬盘很可能已经超出了它可以重新映射的块数,并且耗尽了其“备用”扇区。 您应该立即备份数据(如果尚未备份)并更换驱动器,以免问题变得更加严重并且丢失数据。

如果您不确定要信任哪个SMART诊断程序,建议您下载smartmontoolsGSmartControl来查看SMART诊断程序作为另一项检查。

如果SMART诊断报告没有报告重新分配的扇区(或者“重新分配的扇区计数”的VALUE列仍远低于THRESHOLD),则有一种简便的方法可以执行表面扫描并同时重新映射坏块。(注意:请确保先备份您的数据!)

强制驱动器执行自己的坏块重新映射的最简单方法是从Ubuntu Live CD引导,然后打开终端并运行以下命令:

sudo badblocks -nvs /dev/sda

这将在第一个驱动器上进行无损随机读写测试,并在此过程中重新映射坏扇区。

如果您有多个硬盘驱动器,则可以用/ dev / sdX替换/ dev / sda,其中X是小写字母。通过键入以下命令,可以获得所有硬盘(/ dev / sdX设备)的列表:

sudo fdisk -l

由于您使用的是基于BSD的Mac OS X,因此您可能还需要阅读badsectbad144,它们是用于处理坏块的内置BSD命令行实用程序。


这将需要一段时间:Testing with random pattern: 0.15% done, 27:02 elapsed. (0/0/0 errors)
neu242 2013年

另外,如果在其他启动磁盘上安装了UNIX工具,则可以下载并构建包含badblocks的e2fsprogs.sourceforge.net。然后,只需卸载要检查的磁盘并在其上运行坏块即可。
user8128167 2014年

6

我在grc.com上使用SpinRite的经历非常积极。我设法恢复了至少4块其他所有尝试修复它们均失败的磁盘。唯一的缺点是,它需要基于BIOS的计算机,这意味着它将无法在基于现代EFI的Mac上运行。好消息是,几乎任何其他Poc PC都可以从软盘,CD或闪存驱动器上运行它。在实际检查各个扇区的内容并恢复所有其他实用程序作为坏块丢弃的数据方面,我还没有发现其他任何接近的东西。


6

OS X内置命令fsck_hfs具有-S选项,该选项显然将扫描并纠正OS X硬盘上的坏块。

从文档中:

-S使fsck_hfs扫描整个设备以查找I / O错误。它将尝试将具有错误的块映射到名称,类似于-B选项。

例:

fsck_hfs -fy -S / dev / disk3s11

这似乎是这样做的时候AA盘上运行,而不坏块,但我还没有检查/文件什么时候有它坏块。


我不相信这会像badblocks -n那样按块进行读取和重写,这通常是使磁盘固件实际腾出块所必需的。
Taryn

3

这是一个古老的问题,但仍然有效。对我有用的是:

  • 如果可能,请从主分区以外的分区或驱动器启动。如果要使用第三方应用程序来识别损坏的文件,请确保它不是Mac的恢复选项
  • 确定您的硬盘驱动器上所有由于坏块而损坏的文件。我碰巧用Carbon Copy Cloner创建了驱动器的镜像作为备份(它为您提供了损坏文件的列表)。周围可能还有其他工具可以做到这一点。
  • 在驱动器上找到这些文件,然后将它们删除(也清空垃圾桶!
  • 打开“磁盘工具”,并写入“ 0”以擦除空磁盘空间。(您只需要写一次,所以选择最快的选项)。请注意,这仍然需要一些时间,特别是如果您有很多可用空间。

这样可以识别出坏块并将其标记为“坏块”,这样就不会再次使用。如前所述,错误仅在尝试写入时才会显示。通过写0,就可以做到。

  • 如果您在某个位置备份了这些文件,请从备份中手动替换它们(如果要首先替换它们)。

我可以想象这会非常耗时,特别是如果有很多错误,因此要替换的文件很多。如果是这种情况,请考虑更换驱动器,情况会变得更糟...


0

从GRC听到了有关SpinRite的好消息,但我自己从未尝试过。


可悲的是,在已经发生故障的驱动器上,SpinRite可能带来的弊大于利。:(

@rob有什么害处?SpinRite似乎结合了多种方法,重点是非常好的护理 ……
Graham Perrin

2
@GrahamPerrin就是其中之一,尝试恢复您的数据并将其写回到相同的已知有缺陷的介质没有任何意义。但是无视这一点,一旦SpinRite遇到无法读取的块,它就会反复尝试并重试,然后再继续。同时,驱动器可能会继续降级到完全故障的程度(“自然”或可能由于SpinRite不断重试而造成的额外磨损)。过去,我曾在发生故障的250 GB硬盘上运行SpinRite,但运行了一个多月没有完成。简而言之:首先尝试ddrescue和其他工具。
2013年

2
@rob谢谢,我没有意识到。GRC技术支持向我确认,当前版本的SpinRite不支持恢复到尝试从其进行恢复的磁盘以外的其他内容
Graham Perrin

在2000年代初,制造尖晶石的有争议的家伙被捕时说了很多废话。我记得他写过有关“弱位”的文章,例如,这根本不存在。
托马斯

0

听起来大多数驱动器只会在写入时重新分配一个坏块,所以这就是所有进程“修复”坏块的方式。如果您愿意重新格式化,很多人都在谈论做一个写零的低级格式(磁盘工具会这样做)。

我发现Mac上唯一可以执行此操作的工具是“ Speed Tools”。当发现坏块时,它将向该块写入零(即使它在文件中……以为已经坏了)。

http://www.intechusa.com/


这不是低级格式,甚至不是任何类型的格式,因为格式并不意味着要擦除,而是意味着将驱动器放入允许使用的格式。低级格式决定了将磁道和扇区放在磁盘上的位置,并且仅在制造驱动器时才需要。
Chai T. Rex

如果进一步阅读,您会看到链接的文章提到“低级格式化”现在意味着向所有块写入相同的值。en.wikipedia.org/wiki/Disk_formatting#Disk_reinitialization
aerickson

如果进一步阅读,您会发现这仍然不正确。
柴T.雷克斯

0

首先要注意@chronos 的评论 ……认为:数据丢失。在极少数情况下,修复程序可能使数据恢复变得不可能。


在我在Mac上使用的实用程序中,其中一种对于诸如以下这样的明确警报非常出色:

在此处输入图片说明

警告

您将要执行的操作可能会导致数据丢失。

要保留坏块…将数据写入驱动器。如果发现并保留了坏块,最有可能导致卷或数据损坏。

您可以购买产品之前了解这些事情-清爽诚实。

(要了解数据丢失的风险,例如,请参阅我的答案的“ 为什么要照看?”部分中链接的SpinRite文档,该内容位于如何检查OS X上USB硬盘上是否存在坏扇区?

对于明确的警告,对购买前的满意以及更多,我的投票是对以下内容的信任:

驾驶天才3



-1

太可怕了,以上警告。我的意思是哇,糟糕的建议。:摇头:

  1. 我不知道任何适用于Mac OS X的现代实用程序实际上可以修复(标记)坏块并让您继续工作。话虽如此,您需要找到适用于Mac OS的Norton Utilities的较旧版本,以修复所讨论的HD上的坏块。例如7.0或8.0版。

  2. 由于我假设您正在Mac衣服上使用PC(使用Intel CPU并运行Unix [Mac OS X]的Post PPC计算机),因此您将需要找到一个好的PPC Macintosh(或者它可以在以下环境中运行)仍然可以引导OS 9的intel PC?)。获取(可以假设您拥有SATA HD?)可以与OS 9配合使用的SATA PCI卡。然后从Norton CD引导,运行Disk Doctor,然后进行扫描/修复。有问题的高清。

  3. 这听起来很难做到,但事实并非如此。在过去的20年中,作为一名“真正的” Mac技术人员和狂热的男孩,我拥有从128k到Dual G5的计算机,因此硬件对我来说很普遍。换句话说,这对我来说超级容易。

  4. 为什么我听起来很粗鲁?因为我是。我对当前的苹果公司非常反感,尤其讨厌史蒂夫·乔布斯(Steve Jobs)为我们的1980年代和90年代的Macintosh用户销毁了Apple Computer,并将Mac变成了仅运行Unix的PC。他以及像他这样思考的人是Mac不再拥有“正确”修复HD所需的实用程序的原因。

  5. 告诉您查看SMART数据或以任何方式依赖SMART数据的任何人,您都不应收听它们。SMART非常有缺陷。

  6. HD几乎总是自动重新映射坏块,至少由于我能记住并且我已经成为技术人员了。但!他们在这方面做得很差劲,如果您看到坏块,那是因为HD用光了为自动重映射坏块而保留的极少量空间。IE,您需要运行一个做得更好的实用程序。

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.