我有一个希捷驱动器(ST3400832AS 3.03),该驱动器在没有警告的情况下严重损坏。醒来发现计算机在半夜里退出睡眠状态并重新启动。检查事件日志,发现其中充满了NTFS错误。由于种种原因,我没有此特定数据的最新备份,因此我需要用困难的方式进行备份。

我最初设法以大约1kbps的速度从磁盘上获取了一些文件(千字节) ,而不是字节)在驱动器断开并显示为未初始化之前。

到目前为止,我已经尝试了以下操作…:


TestDisk-检测旧的分区信息,然后挂起。
Spinrite-徒劳无功。
HDD Regernator-预扫描大约2-3分钟后,驱动器“未就绪”。
Seatools-真是个玩笑;所有测试都表明该驱动器还可以。

…以及其他一些原始复制程序。

到目前为止,似乎每当对驱动器加重税时很长一段时间,它只是崩溃了。有谁知道可以执行磁盘驱动器可重新启动原始副本的软件吗?我不介意是否必须重新启动该副本十次,但是到目前为止,我已经尝试了所有尝试,但每次都是从头开始重新启动。仅一遍又一遍地获取前几GB数据并没有多大用处。因此,缓慢,持久且具有恢复功能的操作将有很大帮助。

附带说明,这是辅助内部驱动器,而不是外部驱动器。

评论

我已经成功地冻结了硬盘,但是我不知道为什么,所以我不能认真推荐它。

SpinRite有什么问题?我已经看到它需要运行数天才能修复驱动器。

@Bobson让我想起了几年前的一次车祸。坐在冰块和热风扇上,成功恢复所有数据,同时关闭磁盘或在磁盘太冷时对其进行预热#D // //返回主题:开始研究Android上的数据恢复标签Wiki .SE,也有许多有用的提示也适用于硬盘。

@DennisS。在不做任何事情之前,它不会进入磁盘中超过十二个左右的扇区。即使离开12小时以上

让SpinRite继续前进。我听说过有关它显然在3-4天内什么都不做的故事,然后驱动器已完全修复。

#1 楼


是否有人知道可以执行磁盘驱动器可重启动原始副本的软件?


您基本上是在描述可从可引导Linux运行的GNU ddrescue。实时CD / DVD / USB(我非常喜欢SystemRescueCD)。

克隆驱动器

首先,您应该使用fdisk -l标识已连接到计算机的驱动器命令。这是我的硬盘驱动器上的摘录:

# fdisk -l /dev/sd*
Disk /dev/sda: 232,9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8185b78c

Device     Boot  Start       End   Sectors   Size Id Type
/dev/sda1  *      2048    499711    497664   243M 83 Linux
/dev/sda2       501758 488396799 487895042 232,7G  5 Extended
/dev/sda5       501760 488396799 487895040 232,7G 83 Linux


该命令应以root运行(如您从终端中的#标识所看到的),并且我过滤了/dev/sd*,以避免显示虚拟磁盘。

现在,假设我要在安装为/dev/sda(保存要创建的映像的驱动器)的/dev/sdb内克隆/media/user/External(发生故障的驱动器),我将发出以下命令(作为root):

ddrescue /dev/sda /media/user/External/copy.img /media/user/External/status.log


文件/media/user/External/status.log是程序用来跟踪其进度的日志文件。这样,您可以根据需要中断该工具,然后再继续。

通常,故障硬盘不会打扰ddrescue。它只会简单地复制好零件,然后再返回到出现故障的扇区,并尝试越来越小的块大小。这样可以加快复制过程并确保更好的结果。

您可以使用ddrescueview获得克隆过程的实时图形表示。

从NTFS分区中恢复文件


免责声明:我是RecuperaBit的作者。


您可以使用RecuperaBit恢复NTFS分区的内容。在我看来,它比其他开放源代码解决方案(例如Testdisk和Autopsy)更好,因为即使在严重损坏的情况下,它也能提供良好的结果。至少您可以恢复仍然完整的文件以及大多数目录结构。

RecuperaBit是不需要安装的Python程序。一旦下载了它(通过git或通过下载并提取ZIP文件),就可以使用以下命令行运行它(建议使用pypy):

mkdir /media/user/External/recovered_files
cd [full path of recuperabit]
pypy main.py /media/user/External/copy.img -o /media/user/External/recovered_files -s /media/user/External/savefile.save


扫描过程结束后,它将开始确定找到的任何NTFS分区的几何形状。之后,您可以运行命令recoverable查看分区,然后还原例如分区#2

restore 2 5
restore 2 -1


其中5表示Root目录,-1表示丢失的文件目录。

有一些注意事项请注意:


RecuperaBit会尝试查找任何NTFS分区,所以它可能很慢,因为当前无法设置阈值来避免无用的结果。
不支持压缩,因此某些文件可能无法还原
任何删除的文件或幻影文件也将被还原,现在您不能选择仅还原分配的文件

其他程序

有许多商业(和少数开源)程序(尤其是Windows),可以在不同程度上处理NTFS恢复。我在理学硕士论文和随附的幻灯片中列出并比较了其中的许多内容。下表显示了针对4种不同磁盘映像的与NTFS重构准确性相关的测试结果:

qq20102010q

本文进一步给出了解释和注释。如果您想使用商业GUI程序,我建议您使用Restorer Ultimate或DMDE。

评论


我想将gddrescue与kpartx挂载配对-它可以轻松处理多分区图像。最好的还原方法是通过备份;)

–游侠怪胎
16-4-18的12:27

@ JourneymanGeek,kpartx是否要求分区表实际上是完整且可读的?另外,我会说建议使用备份不会回答“如何执行故障驱动器的位流复制?”。 :)

– Andrea Lazzarotto
16年4月18日在13:16

可以,但是您需要安装驱动器才能取出数据,不是吗?除非您打算将驱动器重新映像到另一个驱动器,否则这有点麻烦。

–游侠怪胎
16年4月18日在13:41

仅当分区表和MFT都在工作时才可以安装驱动器,而损坏的驱动器则不会。这就是问题(关于驱动器克隆)和答案(关于驱动器克隆和法医NTFS重建)的重点。

– Andrea Lazzarotto
16年4月18日在14:12

@AndreaLazzarotto良好的备份信息,+ 1。 RecuperaBit是否仅适用于NTFS?而且您没有在测试中包括PhotoRec吗?比较表(幻灯片21?)是否仅用于目录树(如文件路径和名称)?实际恢复的文件数据在幻灯片22中-还是该幻灯片仅用于稀疏,压缩和加密(?)文件?

– Xen2050
16年5月6日在12:55

#2 楼

我在“不可阻挡的副本”中万事如意。当普通的Windows或DOS副本给我CRC错误时,我可以从硬盘上有很多坏扇区的文件中获取许多文件。大多数文件都是可用的,即使Windows无法复制也是如此。我只丢失了几张丢失了太多数据的照片。

Spinrite实际上可以更有效地修复数据,但是我开始使用它恢复80 GB的驱动器,两个小时后进行了数学运算,计算得出,完成该驱动器将需要运行大约一个半月。我不喜欢这样,因为通常硬盘驱动器坏了,您想要在情况变得更糟之前快速将它们拿走。

评论


“计算得出它必须运行大约一个半月”。这可能是基于到目前为止的结果。但是根据我的经验,损坏的扇区通常位于驱动器的开头,因此它可能会压缩磁盘的其他95%。可能不是;-)我也听说有人让它修复前几个百分点,然后停止它,然后能够复制大多数数据,因为固定的初始扇区导致逻辑磁盘/文件信息再次可读。

–user416
2014年10月14日在8:01

根据我的经验,Spinrite坚持尝试读取同一天失败的扇区数天。幸运的是,我意识到并开始使用开源工具(ddrescue和dd_rescue),这些工具可以在数小时内提取大部分数据,直到硬件完全失效为止。也许如果我早些时候放弃了Spinrite,我将有更多的时间保存数据。远离。

–hmijail哀悼辞职者
20 May 25'4:16