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:**
我已经放弃了,等待进一步的建议。我已经移除了驱动器并重建了盒子。万一有事,我会开车兜风。
根据我的经验,有几点注意事项:
testdisk在 Linux 下进行类似操作,但如果失败,Windowschkdisk可以提供帮助。如果您在虚拟机下安装了 Windows,则可以将获取的原始映像转换ddrescue为该虚拟机支持的格式(例如VDI或VMDK),将其添加到 VM 并以命令行模式启动 Windows 以修复文件系统。如果您使用 VirtualBox,则可以选择转换此类图像的命令以获得指定的输出格式。VBoxManage convertfromraw <filename> <outputfile>--format VDI|VMDK|VHD| 归档时间: |
|
| 查看次数: |
7708 次 |
| 最近记录: |