我在SpinRite方面拥有相当不错的经验,但我认为它被高估了。实际上,它可能只是出于自身利益而太聪明了。有免费的解决方案也可以工作(实际上,免费的解决方案可能会更好)。
我们有一个200 GB的NTFS驱动器,突然发生了灾难性的故障。人们原本以为这是“共享的”驱动器,人们只是暂时将其抛弃了,但最终变成了一个庞大的数据存储库,该存储库具有各种备份,以及一堆文件,没人愿意备份。当驱动器失效时,无论我们运行chkdsk或其他工具多少次,都无法安装它。
最后,我们购买并运行了SpinRite ...,它继续运行了1个月以上。每次遇到不良群集时,都会花费数小时来尝试从中恢复数据。再次,它连续运行了一个多月,试图从有故障的200 GB驱动器中恢复数据。(在SpinRite的辩护中,如果没有物理缺陷,它可以在几小时内扫描驱动器。)SpinRite最终能够恢复我们的所有文件,尽管许多较大的文件无论如何都已损坏。SpinRite还使驱动器可再次安装。因此,我肯定会说它做了一些事情。
但是,尽管它确实有效,但我不知道它是否有帮助,不仅仅是引导Linux CD并运行dd将整个驱动器复制到文件中。有人说因为要死掉的磁盘整整一个月都没有运行,所以要说! 物理缺陷似乎有扩散的习惯。如果SpinRite运行时磁盘进一步下降,也不会令我感到惊讶。就个人而言,我希望尽快从磁盘上获取数据,制作多个备份映像,并尝试脱机修复文件。
我们最近不得不恢复其他数据,而dd做得很好。您可以告诉它从驱动器中复制所有好的数据,然后可以再运行几次,然后再尝试(即使用较小的块大小)尝试从坏区中提取数据。
如果您有一个小时左右的时间,我想值得花时间学习如何使用dd而不是购买SpinRite:http :
//www.debianadmin.com/recover-data-from-a-dead -hard-drive-using-dd.html
或使用稍微简单些的方法下载dd_rescue:http ://www.garloff.de/kurt/linux/ddrescue
如果您仍然想运行SpinRite,强烈建议您在将所有现有数据复制到驱动器之后再进行操作,以防万一长时间运行该驱动器会使其性能进一步下降。
每次获得新驱动器时,都应从Linux CD引导并运行badblocks以检查其是否有缺陷。您还应该定期检查驱动器是否降级。我们至少有2个全新的硬盘有缺陷,并且在几个月内又有3或4个硬盘失效(即使我们在投入使用之前进行了彻底的测试)。
请注意,如果要从Ubuntu live CD引导,则需要以root身份运行badblocks,或者在命令前加上“ sudo”前缀。
全新驱动器(警告:会破坏所有数据!):
badblocks -wvs /dev/sd#
要么
badblocks -wvs /dev/hd#
使用中的驱动器(只读测试):
badblocks -vs /dev/sd#
要么
badblocks -vs /dev/hd#
其中#是Linux中的驱动器号。IDE驱动器通常称为/ dev / hd#,而SCSI(通常是SATA)驱动器称为/ dev / sd#。
有关Badblocks的更多信息,请访问:http : //en.wikipedia.org/wiki/Badblocks
顺便说一句,即使dd和badblocks是Linux程序,您也可以在NTFS驱动器上使用它们,甚至可以在Linux中挂载NTFS分区,无论您使用的是MBR分区,动态磁盘还是GPT磁盘。
Steve的文档讨论了SpinRite理论上可以帮助解决的许多假设问题。例如:随着时间的流逝,数据逐渐消失,需要通过读取每个块并将其再次写回到磁盘来“刷新”数据,或者这样的想法,即反复将读取头重新定位在块的任一侧,最终将使您在统计上神清存储在该块中的原始数据。从逻辑上讲,这些事情是有道理的,但我认为它们只是解决学术问题的方法,而这些问题在现实世界中可能并不会真正出现。(至少,对于硬盘-也许Zip磁盘等更容易受到数据衰减的影响。)如果史蒂夫(Steve)引用了有关该主题的论文,或者如果这些技术已经通过实验证明是有效的,那么我期望会有许多开源或商业上可用的SpinRite克隆。编写包含SpinRite所有已记录功能的Python,Perl或UNIX shell脚本,这在普通脚本程序员的能力范围内是完全可以的。