在过去的几周中,我一直在就该主题进行大量研究-我认为我至少要尽可能地完成恢复。长话短说,我将仅描述问题而不填写每个微小的技术细节。
假设您有多个RAID-5阵列,每个阵列都有8个磁盘,然后将它们一起扩展到一个LVM逻辑卷中。然后,其中一个磁盘在其中一个阵列中死亡,并且在重建过程中,该阵列中的第二个磁盘上遇到不可恢复的读取错误。当然,没有备份。
我已经使用URE将驱动器中的数据ddrescue's到了新驱动器上,仅损坏了5K数据,所有数据都被分组到很小的磁盘区域中。我还假设,一旦我使用ddrescue'd副本重组了该MD设备,就将数据丢失的大小乘以阵列中非奇偶校验驱动器的数量(即35K的数据丢失)作为奇偶校验使用这些块进行的条纹计算将不正确。
我已经阅读并理解了http://smartmontools.sourceforge.net/badblockhowto.html上的过程,用于确定哪些文件会因这种情况而损坏,但是我的问题是确切地找出在md重建以用作debugfs的输入。找出md和lvm存储元数据的所有偏移量也不会很有趣,但是我认为我可以处理这一部分。
我是否可以将所有坏块编号乘以7,然后假设每个坏块之后的以下6个块也是坏块,然后按照上面链接的指南中的LVM指令进行操作?
需要明确的是-我不关心修复或重新映射指南中描述的坏块,我已经更换了磁盘,并将让md处理这种事情。我只想知道ext4文件系统上的哪些文件已受到影响。