Linux 如何模拟ext3文件系统损坏?

Linux 如何模拟ext3文件系统损坏?,linux,testing,filesystems,fault-tolerance,ext3,Linux,Testing,Filesystems,Fault Tolerance,Ext3,我想模拟文件系统损坏,以测试我们的嵌入式系统如何应对它,并最终让它们尽可能优雅地失败。我们使用不同类型的块设备模拟闪存存储数据,这些数据经常被修改,不适合存储在NAND/NOR中 因为我非常了解在文件树的不同部分修改数据的频率以及敏感数据的存储位置。我想在特定的领域注入错误,而不仅仅是随机的 在紧急情况下,我们使用fsck-y作为最后手段,试图启动系统并报告处于非常糟糕的状态。我非常希望引起错误,从而触发fsck尝试维修,以研究对系统恢复能力的影响 ddif=/dev/random对于我来说不够

我想模拟文件系统损坏,以测试我们的嵌入式系统如何应对它,并最终让它们尽可能优雅地失败。我们使用不同类型的块设备模拟闪存存储数据,这些数据经常被修改,不适合存储在NAND/NOR中

因为我非常了解在文件树的不同部分修改数据的频率以及敏感数据的存储位置。我想在特定的领域注入错误,而不仅仅是随机的

在紧急情况下,我们使用
fsck-y
作为最后手段,试图启动系统并报告处于非常糟糕的状态。我非常希望引起错误,从而触发fsck尝试维修,以研究对系统恢复能力的影响


ddif=/dev/random
对于我来说不够精确,因为它不容易用于注入受控错误。是否有其他工具或方法更适合我的需要,或者我必须发明自己的工具或方法?

如果您已经知道要修改什么,dd可以读取包含要写入的字节的文件,并告诉它在哪里写入它们


要确定写入位置,e2fsprogs包中的debugfs可以帮助您。

应该可以使用Linux文件系统映像模糊器导致损坏:

  • (使用zzuf)

或者。

中描述的一种Linux磁盘错误注入技术(例如,损坏模式下的dm flakey),这是一个很好的问题,但我会标记此容错,而不是优雅的降级。