用于损坏驱动器(IO 错误)的高级 NTFS 分区文件恢复技术?

dar*_*ron 8 data-recovery ntfs

我最近在影响几个虚拟机的 ESXi 主机上的硬盘驱动器遭受了一个小得令人发狂但非常重要的损坏。有一个我非常想恢复的文件,当然它以某种方式从我的常规备份中消失了。最近的副本是 6 个月前的。原来我需要那个......哎呀。

细节:

1) 我在 Parted Magic 可启动 ISO 中使用了 ddrescue(很棒的工具)来恢复有问题的 VM 驱动器的 99.98%。不幸的是,错误似乎几乎完全是最近的文件写入......所以当然它们正是我最需要恢复的扇区。

2) 驱动器在读取坏扇区时出现 IO 错误,但偶尔会成功读取以前的坏扇区!所以,恢复还是有可能的。比这更频繁地会出现某种重大故障并使驱动器旋转和备份。哦,大约 1/4 的降速不会恢复。(需要硬重启,关机不起作用)最后,几乎每个坏扇区读取都伴随着美妙的咔嗒声。

3) 重要的VM 磁盘是NTFS 格式的。

4) 我可以(通常)以只读方式安装损坏的 NTFS 卷,并且我可以(稍微不那么频繁地)导航到包含我需要的文件的文件夹。但是,当我对文件夹执行“ls”操作时,有问题的文件似乎总是会出现 IO 错误。文件夹中的其他文件不会出现 IO 错误。

5) 我试过使用 ntfsinfo/etc ......这听起来正是我需要的......但它根本不会打开分区。(令人沮丧,因为'mount'通常会)

6) 该文件是 Excel 2003 时代的 XLS 文件,所以我不确定我能想出任何字符串来搜索原始磁盘映像。(可能是 6 个月大版本的一部分?)

我真的很想使用类似 debugfs 的工具。但是,从手册页看来,只要能够打开分区,ntfs 工具就可以完成这项工作。特别是,我想知道 IO 错误是否可能纯粹在文件的元数据中,以及目录记录是否可以很好地恢复以复制文件内容。作为最后的手段,我可​​以检索的任何部分文件内容都会很棒。

我以前写过(相对简单的)内核模块,所以我可以编译一个特殊的 NTFS 模块,启用(或添加)更多调试信息。(该文件至少值得花几天的时间来尝试恢复......而且我在这个过程中学习了很酷的东西)

任何指针?

编辑:

更多驱动错误信息:

/var/log/messages 当然显示了很多 NTFS-fs 错误......但我终于费心去翻译我通常得到的未处理的感知代码消息:感知密钥 0x3,ASC=0x11,ASCQ=0x4。(这似乎转化为 UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED)。

当驱动器转速下降时,我看到一条“scsi0: * BusLogic BT-958 Initialized”消息。我不确定是 Linux SCSI 驱动程序、ESXi 驱动程序还是驱动器本身决定降低驱动器转速。如果它是 Linux 驱动程序,那么也许我可以修改驱动程序以避免旋转。这些需要电源循环的停机使整个 ddrescue 事情变得更加痛苦。

编辑2:

使用“end_request:I/O 错误,dev sda,扇区 7238859”日志消息,在我“ls”包含相关文件的目录之后,我将我的 ddrescue 操作定位到该扇区。如果成功,我目前计划抓住机会将该扇区写回实时磁盘。也许我可以通过这种方式慢慢重建到有问题的文件的方式。尽管如此,大多数可恢复的坏扇区都在 20 次以下重试中恢复......到目前为止,这个已经超过 150 个...... *叹气*

编辑3:

我需要的文件上来自“ls”的扇区错误完全不合作(一夜之间尝试了 1000 多次,但没有运气)。我希望当您执行 'ls' 时这只是元数据?:)

我确实有大部分 ddrescue 副本,但是没有安装(或没有文件安装)。损坏的驱动器大部分时间都可以正确安装......损坏的驱动力“安装”上的 IO 错误可能会回落到工作的镜像?

** 编辑 4:**

我已经放弃了,等待进一步的建议。我已经移除了驱动器并重建了盒子。万一有事,我会开车兜风。

roz*_*acz 4

根据我的经验,有几点注意事项:

  1. (原因)如果您在尝试高清访问时听到不寻常的声音,并且(或多或少)随机磁盘位置没有出现问题,那么根本原因很可能是在磁盘表面(而不是电子设备)上 - 不幸的是,这就是悲伤的场景。如果“只是”电子设备,您可能有机会恢复大部分甚至全部数据。
  2. (坏扇区)如果您还没有,请在网上搜索磁盘制造商的可启动诊断/恢复工具,下载它,启动,运行深度测试并让它尝试重新映射坏扇区 - 这是免费方法中最好的。 请注意,坏扇区有增长的趋势 - 因此,即使您在第 2314 次读取尝试后设法捕获文件的一大块,这些尝试也很可能只会使附近的坏扇区增长,从而有效地降低恢复其他部分的机会文件的。
  3. (恢复 NTFS)没有什么可以像 MS Windows 本机工具那样修复 NTFS 文件系统。如果 NTFS 映像不可安装(还要确保您尝试安装分区,而不是整个磁盘!),您可以尝试testdisk在 Linux 下进行类似操作,但如果失败,Windowschkdisk可以提供帮助。如果您在虚拟机下安装了 Windows,则可以将获取的原始映像转换ddrescue为该虚拟机支持的格式(例如VDIVMDK),将其添加到 VM 并以命令行模式启动 Windows 以修复文件系统。如果您使用 VirtualBox,则可以选择转换此类图像的命令以获得指定的输出格式。VBoxManage convertfromraw <filename> <outputfile>--format VDI|VMDK|VHD