来自故障硬盘的原始副本

软件推荐 硬盘 数据恢复
2021-10-23 01:02:23

我有一个希捷硬盘 (ST3400832AS 3.03),它在没有警告的情况下严重失败。半夜醒来发现电脑从睡眠中醒来,然后重新启动。检查事件日志,它充满了 NTFS 错误。由于各种原因,我没有最近备份此特定数据,所以我需要努力做到这一点。

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

到目前为止,我已经尝试了以下...:

  • TestDisk - 检测旧分区信息,然后挂起。
  • Spinrite - 是徒劳的练习。
  • 硬盘再生器 - 预扫描约 2-3 分钟后,驱动器变为“未就绪”。
  • Seatools - 真是个笑话;所有测试都显示驱动器正常。

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

到目前为止,似乎只要驱动器被征税太久太久,它就会崩溃。有谁知道可以执行可重新启动的磁盘驱动器原始副本的软件?我不介意是否必须重新启动副本十几次,但是,到目前为止,我已经尝试过所有的尝试,每次都从头开始重新启动。一遍又一遍地获取前几 GB 的数据并没有多大用处。所以一些缓慢的、持久的、具有恢复功能的东西会有很大的帮助。

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

2个回答

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

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

克隆驱动器

首先,您应该使用该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可以看出),我进行了过滤以避免显示 ramdisk。#/dev/sd*

现在,假设我要克隆/dev/sda(故障驱动器),/dev/sdb其中安装为/media/user/External(保存我要创建的映像的驱动器),我将发出以下命令(as 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表示Lost Files目录。

需要注意一些注意事项:

  • RecuperaBit 将尝试查找任何 NTFS 分区,因此它可能会很慢,因为目前无法设置阈值以避免无用的结果
  • 不支持 NTFS 压缩,因此某些文件可能无法恢复
  • 任何已删除的文件或幽灵文件也将被恢复,目前您不能选择仅恢复分配的文件

其他节目

有许多商业(和一些开源)程序(尤其是 Windows)可以在不同程度上处理 NTFS 恢复。在我的硕士论文和随附的幻灯片中列出并比较了其中的一些。下表显示了我对 4 个不同磁盘映像的 NTFS 重建精度相关的测试结果:

不同NTFS重建方案比较

在我的论文中给出了进一步的解释和注释。如果您更愿意使用商业 GUI 程序,我建议您使用Restorer UltimateDMDE

我在Unstoppable Copy上运气不错当普通的 Windows 或 DOS 副本给我 CRC 错误时,我能够从具有许多坏扇区的硬盘驱动器中获取许多文件。大多数文件都是可用的,即使是那些 Windows 无法复制的文件;我只丢失了几张丢失了太多数据的照片。

Spinrite 实际上在修复数据方面可能更有效,但我开始用它恢复一个 80 GB 的驱动器,两个小时后进行了数学计算,计算出它需要运行大约一个半月才能完成驱动器。我不喜欢这样,因为通常在硬盘坏了的情况下,你想在事情变得更糟之前快速把东西弄掉。