2008-09-26 72 views
15

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

由于我对数据在文件树的不同部分以及敏感数据存储位置的修改频率有很好的了解。我想在特定领域注入错误,而不是随机。

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

dd if=/dev/random对于我的目的不够精确,因为它不容易用于注入受控错误。还有其他工具或方法能更好地满足我的需求,还是我必须创造自己的?

+0

伟大的问题,但我会标记此容错而不是优雅退化。 – 2008-09-26 15:49:50

回答

2

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

要确定在哪里编写,e2fsprogs软件包中的debugfs可以帮助您。

1

应该可以使用Linux文件系统的图像模糊器造成损坏:

或其中一种Linux磁盘故障注入技术(例如,在https://unix.stackexchange.com/a/144200中描述的在腐败模式下的dm-flakey)。