![分析Ext4分区中的分配空间以提高数据恢复效率](https://linux22.com/image/1592662/%E5%88%86%E6%9E%90Ext4%E5%88%86%E5%8C%BA%E4%B8%AD%E7%9A%84%E5%88%86%E9%85%8D%E7%A9%BA%E9%97%B4%E4%BB%A5%E6%8F%90%E9%AB%98%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D%E6%95%88%E7%8E%87.png)
我正在尝试使用 Lubuntu 从故障的 4TB 硬盘驱动器中恢复尽可能多的数据。
根据 GParted 的说法,主分区采用 Ext4 格式,仅包含 553GB 数据。我尝试使用硬盘超级克隆,Linux 的 GUI 软件,ddrescue
其用途和功能与命令行工具类似。起初它运行良好,几乎没有错误/跳过扇区,平均复制速率也不错(~60MB/s)。但大约在中途,它开始出现更严重的问题,一些区域根本无法读取,形成了好读和坏读交替出现的模式,这通常表明一个磁头有缺陷。那时我停止了恢复。
我恢复了大约 1.7TB 的数据,而且很长一段时间以来它只复制了 00 字节,所以我认为所有相关数据都已保存在恢复驱动器上。但事实证明,主分区无法安装(虽然仍可以安装在源驱动器上,但有点困难),而且知名的数据恢复软件(R-Studio、DMDE)无法重建原始目录结构或检索原始文件名。当在 WinHex 中打开恢复驱动器时,我发现除了 438GB 之外,其余空间都已清空,这意味着大约 115GB 丢失了 — — 虽然我不明白这是怎么可能的,因为文件系统应该将数据写入最外层可用区域,这些区域的读写速度更快,从而优化 HDD 的性能。
现在,为了充分利用剩余的空间,考虑到驱动器的状况可能会在下一次认真的恢复尝试中迅速恶化,我正在寻找任何可以分析元数据结构并报告已分配/未分配空间的方法,以便我可以将恢复定位到那些相关区域,而不是浪费宝贵的时间读取千兆字节的零。几年前,HDDSuperClone ddru_ntfsbitmap
( 的一部分ddr_utility
)的作者开发了一个小型命令行程序,它可以自动对 NTFS 分区执行此操作:它分析文件$Bitmap
并生成一个“映射文件”,ddrescue
有效地将副本限制在标记为已分配的扇区(前提是可以完整读取此系统文件);它还可以生成一个“映射文件”来恢复第一个$MFT
,这非常有用(MFT 包含所有文件的元数据和目录结构信息,如果它已损坏或丢失,则只能进行“原始文件雕刻”类型的恢复)。但即使是这位非常有能力的人也不知道如何对 Linux 分区执行相同的操作,正如他在这个 HDDGuru 线程。
因此,即使它不是完全自动化的,我也需要一个可以快速高效地分析 Ext4 分区的程序,以便在此过程中不会进一步磨损驱动器,并以文本日志或图形演示的形式报告该信息。也许碎片整理程序可以解决问题?
一般来说,重要的元数据结构(如果我没记错的话是“ inode”)位于 Linux 分区的什么位置?是否有一个相当于 NTFS 的单个文件$Bitmap
,或者有关文件/扇区分配的信息是否通过更复杂的分析确定?(如果相关,则驱动器位于 WDMyCloud 网络机柜中,出厂配置并运行 Linux 操作系统。)