恢复中间有坏块的文件

恢复中间有坏块的文件

我们的 ext4 文件系统上的一个大文件可能在中间出现了坏块。将文件复制到另一个驱动器会导致中途出现输入/输出错误。但是坏扇区以外的数据似乎仍然正常。

由于该文件是最近创建的,我们没有它的备份,因此我正在寻找一种复制文件整个可读部分同时跳过坏扇区的方法。

我读过其他网站,它们建议了恢复带有坏块的整个硬盘的方法,但它们并没有提及如何恢复跨越坏块的文件。

谢谢。

答案1

你应该能够做到dd

dd if=fileWithBadBlocks of=recoveredFile bs=4k conv=noerror,sync

答案2

需要注意的是,文件系统只会读取磁盘上的“块”(通常为 4k),但硬盘上的损坏通常涉及“扇区”(非 ADF 磁盘上为 512 字节)。

如果某个块中的单个扇区无法读取,则文件系统会认为整个块无效,并且不会根据请求返回内容,因此实际上尝试复制文件就可恢复数据量而言,可能无法为您提供最佳结果。

相反,你可以考虑使用dd选项conv=noerror和默认块大小 512 字节,或者甚至ddrescue复制整个分区包含文件系统,然后复制该文件。

答案3

2021 年的小更新,最近我遇到了同样的问题,尤其是 innoDB (.ibd) 文件损坏了。需要尽快修复,而克隆整个磁盘可能需要几天时间,所以我开发了一个旨在解决完全相同问题的软件。

我搜索了很多次都没有成功,这就是我将其公开的原因。 https://github.com/DaVieS007/Partial-File-Recovery

答案4

这只是我今年的 2c。

我来到这里是因为我的 raid 0 驱动器开始出现故障块,并且使用我的 raid 控制器来“替换磁盘”除了将坏的 juju 复制到另一个磁盘上之外没有做任何事情?

为了尽可能地保存数据,我现在正在尝试 ddrescue。只是添加了如何安装;

也是最好的一个;一个真正有用的指南; https://www.technibble.com/guide-using-ddrescue-recover-data/

如果您是远程运行,我还建议您使用 TMUX?也许有更聪明的方法可以做到这一点,但 ddrescue 命令需要保持运行,而我不想永远保持远程登录状态。

不确定为什么运行它需要 5 天时间(500GB)但是 tmux:

 > run command
 > ctrl+b, d

现在在 tmux 会话中运行,您也可以在下次登录时重新连接。

相关内容