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


8

最近,我对ESXi主机上的硬盘驱动器造成了非常小但非常重要的损坏,影响了几个VM。有一个我非常想恢复的文件,当然我的常规备份不知何故。最近的副本为6个月大。原来我需要那个...哎呀。

细节:

1)我已经在Parted Magic可启动ISO中使用ddrescue(AWESOME工具)来恢复有问题的VM驱动器的99.98%。不幸的是,这些错误似乎几乎完全是最近写入的文件……因此,它们当然正是我最需要恢复的部分。

2)驱动器在坏扇区读取时出现IO错误,但在读取先前坏扇区时偶尔会成功!因此,恢复仍然是可能的。发生这种情况的频率稍高一些,将导致某种重大故障,并使驱动器上下旋转。哦,大约1/4的降速不会恢复。(需要强行重启,关机将不起作用)最后,几乎每个坏扇区读取都带有可听见的咔嗒声。

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

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

5)我尝试使用ntfsinfo / etc ...这听起来完全像我的需要...但是它根本无法打开分区。(令人沮丧,因为“装载”通常会出现)

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

我真的很想使用类似debugfs的工具。但是,从手册页看来,如果仅使它们能够打开分区,则ntfs工具可以完成此工作。特别是,我想知道IO错误是否可能纯粹在文件的元数据中,并且是否可以很好地还原目录记录以复制文件内容。作为最后的选择,无论我可以检索的任何部分文件内容都很棒。

我之前已经编写了(相对简单的)内核模块,所以我可以编译一个启用了(或添加了)更多调试信息的特殊NTFS模块。(该文件至少值得修补几天才能尝试恢复...此外,我在此过程中正在学习很棒的东西)

有指针吗?

编辑:

更多驱动器错误信息:

/ var / log / messages当然会显示很多NTFS-fs错误...但是我最终还是费心翻译了我通常会得到的未处理的感应代码消息:感应键0x3,ASC = 0x11,ASCQ = 0x4。(这似乎会翻译为“未恢复的读取错误-自动重新定位失败”)。

当驱动器旋转时,我看到“ scsi0:* BusLogic BT-958已初始化”消息。我不确定是决定降低驱动器的速度是Linux SCSI驱动器,ESXi驱动器还是驱动器本身。如果它是Linux驱动程序,那么也许我可以修改驱动程序以避免崩溃。这些需要电源周期的停工让整个ddrescue事情变得更加痛苦。

编辑2:

在“ ls”包含所涉及文件的目录后,立即使用“ end_request:I / O错误,dev sda,扇区7238859”日志消息,已将ddrescue操作定位到该扇区。我目前计划借此机会,如果成功的话,将该扇区写回到活动磁盘。也许我可以用这种方式慢慢地将我的方式重建到有问题的文件中。不过,大多数可恢复的坏道是在20次以下重试中恢复的。到目前为止,这一次已超过150次。

编辑3:

我需要的文件中'ls'出现的扇区错误是完全不合作的(一千次尝试了一整夜,没有运气)。我希望当您执行“ ls”时仅仅是元数据?:)

我确实拥有大多数ddrescue副本,但是不会挂载(或不带文件挂载)。损坏的驱动器在大多数情况下都可以正确安装……也许损坏的驱动器“安装”上的IO错误又落回到了可以工作的镜像上?

**编辑4:**

我已经放弃了,等待进一步的建议。我已经卸下驱动器并重建了盒子。我会一直开车,以防万一。


3
首先要做的是制作磁盘副本,使用ddrescue或其他类似工具复制尽可能多的扇区。不要从损坏的磁盘执行任何文件系统级的恢复,而要从副本进行恢复。
吉尔斯(Gilles)'“ SO-不要邪恶”

1
@吉尔斯我确实提到我使用了ddrescue。显然,在安装副本的错误位置存在错误。目前尚不清楚我需要用ddrescue来解决的偏移量,以解决该问题……因此,对于诸如debugfs(或至少可以与常规“ mount”使用的分区一起使用的ntfsinfo)这样的问题。此时,我最好的选择是监视/ var / log / messages中的扇区错误,因为我在只读装载中访问损坏的驱动器,然后尝试将它们降级到副本,直到它起作用为止。
darron

1
在此过程中,您是否一直在主动冷却驱动器?将驱动器保持在尽可能低的温度将有很大帮助。
内森五世

Answers:


4

根据我的经验,请注意以下几点:

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

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.